For the purpose of this page, we use the terms “rows” and “cases” as equal to refer to the entries of the dataset. In many of the processes made along the deduplication of entries in C1 dataset, we used unstandardized columns or many other data that was in fact duplicated by HASHs, that did not depend on events related to treatment.In order to find and delete duplicated data that does not add information relevant for the purposes of the study, we now may use these standardized variables as a criteria to achieve the goal of having a unique event per HASH, by reducing its complexity based on irrelevant differences.


As stated in the third part of the deduplication process, we identified and defined an amount of treatment days that would be suitable to link these entries, and several additional criteria to distinguish between what would be a different treatment from what would reflect a continuation of a treatment. In these stage, we defined rules to keep the most relevant information by each variable to collapse the intermediate events into a single entry that summaries the whole treatment and would let us distinguish posterior treatments.

Structure of Treatments and Rules to Collapse Continuous Entries

We got a general impression of the database to understand what would be the steps to follow to collapse entries into differentiated treatments. This is why we look at the relationship that the entries had with those that followed them.


#https://stackoverflow.com/questions/46750364/diagrammer-and-graphviz
#https://mikeyharper.uk/flowcharts-in-r-using-diagrammer/
#http://blog.nguyenvq.com/blog/2012/05/29/better-decision-tree-graphics-for-rpart-via-party-and-partykit/
#http://blog.nguyenvq.com/blog/2014/01/17/skeleton-to-create-fast-automatic-tree-diagrams-using-r-and-graphviz/
#https://cran.r-project.org/web/packages/DiagrammeR/vignettes/graphviz-mermaid.html
#https://stackoverflow.com/questions/39133058/how-to-use-graphviz-graphs-in-diagrammer-for-r
#https://subscription.packtpub.com/book/big_data_and_business_intelligence/9781789802566/1/ch01lvl1sec21/creating-diagrams-via-the-diagrammer-package
#https://justlegal.be/2019/05/using-flowcharts-to-display-legal-procedures/
#   #   [3]:  paste0('Only applications w/ only one\\n application in the same date \\n(n = ', formatC(nrow(CONS_C1_df_dup_JUN_2020), format='f', big.mark=',', digits=0), ';\\n users:',formatC(CONS_C1_df_dup_JUN_2020%>% dplyr::distinct(hash_key)%>% nrow(), format='f', big.mark=',', digits=0),')')
   #   [4]:  paste0('Dataset \\n(n = ',formatC(comb_datasets_a_n,format='f', big.mark=',', digits=0),'\\nusers =',formatC(comb_datasets_a_users,format='f', big.mark=',', digits=0),')')
   #   [5]:  paste0('Dataset \\n(n = ',formatC(comb_datasets_b_n,format='f', big.mark=',', digits=0),'\\nusers =',formatC(comb_datasets_b_users,format='f', big.mark=',', digits=0),')')
   #   [6]:  paste0('Dataset \\n(n = ',formatC(comb_datasets_c_n,format='f', big.mark=',', digits=0),'\\nusers =',formatC(comb_datasets_c_users,format='f', big.mark=',', digits=0),')')
   #   [7]:  paste0('Final Sample \\n(n = ', formatC(nrow(CONS_C1_df_dup_JUN_2020_match_top_sel), format='f', big.mark=',', digits=0), ';\\n users: ',formatC(CONS_C1_df_dup_JUN_2020_match_top_sel%>% dplyr::distinct(hash_key)%>% nrow(), format='f', big.mark=',', digits=0),')')
#
#    #  tab3 [label = '@@3']
    #  tab7 [label = '@@7']
   #  blank [label = '', width = 0.001, height = 0.001]
#
#    # blank -> tab3[ dir = none,  color = 'white',fontcolor = white,shape=none, width=0, height=0];
    # tab3 -> tab4 [label=paste0('Some users had events fullfilling both conditions (n=',tab6_lab_users+tab5_lab_users-tab4_lab_users')',fontsize = 9];
    #  tab6 -> tab7 [label='  Only rows with available data on TOP scores and Diagnostic of CIE-10',fontsize = 9];
tab1_lab<- paste0('C1 Dataset \n(n = ', formatC(nrow(CONS_C1_df_dup_JUN_2020), format='f', big.mark=',', digits=0), ';\nusers: ',formatC(CONS_C1_df_dup_JUN_2020%>% dplyr::distinct(hash_key)%>% nrow(), format='f', big.mark=',', digits=0),')')

tab2_lab<-paste0('Cases of users that had at least two entries \n(n = ', CONS_C1_df_dup_JUN_2020%>% dplyr::group_by(hash_key)%>%   dplyr::mutate(sum_validos=sum(!is.na(diff_bet_treat)))%>%
  ungroup()%>%  dplyr::filter(sum_validos>0)%>% nrow()%>% formatC(big.mark=","),';\nusers =',  CONS_C1_df_dup_JUN_2020%>% dplyr::group_by(hash_key)%>%   dplyr::mutate(sum_validos=sum(!is.na(diff_bet_treat)))%>%  ungroup()%>%  dplyr::filter(sum_validos>0)%>% distinct(hash_key)%>% nrow()%>% formatC(big.mark=","),')')

tab3_lab<-paste0('Only entries w/ an entry\n that followed another one \n(n = ', CONS_C1_df_dup_JUN_2020%>% dplyr::filter(!is.na(diff_bet_treat))%>%nrow()%>% formatC(big.mark=","),';\nusers =',CONS_C1_df_dup_JUN_2020%>% dplyr::filter(!is.na(diff_bet_treat))%>%distinct(hash_key)%>% nrow()%>% formatC(big.mark=","),')')

            tab4_lab_n<-CONS_C1_df_dup_JUN_2020%>% 
              #dplyr::filter(!is.na(diff_bet_treat))%>%
              dplyr::mutate(filter_complex= dplyr::case_when(diff_bet_treat<45& as.numeric(motivoegreso_derivacion)==2~1,TRUE~0))%>%
              dplyr::mutate(filter_complex2= dplyr::case_when(diff_bet_treat<60& as.numeric(motivoegreso_derivacion)==1~1,TRUE~0))%>%
              dplyr::filter(filter_complex==1|filter_complex2==1)%>%
              #dplyr::select(hash_key,motivoegreso_derivacion,diff_bet_treat)
              nrow()
            
            tab4_lab_users<-CONS_C1_df_dup_JUN_2020%>% 
              #dplyr::filter(!is.na(diff_bet_treat))%>%
              dplyr::mutate(filter_complex= dplyr::case_when(diff_bet_treat<45& as.numeric(motivoegreso_derivacion)==2~1,TRUE~0))%>%
              dplyr::mutate(filter_complex2= dplyr::case_when(diff_bet_treat<60& as.numeric(motivoegreso_derivacion)==1~1,TRUE~0))%>%
              dplyr::filter(filter_complex==1|filter_complex2==1)%>%
              #dplyr::select(hash_key,motivoegreso_derivacion,diff_bet_treat)
              distinct(hash_key)%>% nrow()
            
            tab5_lab_n<-CONS_C1_df_dup_JUN_2020%>% 
              #dplyr::filter(!is.na(diff_bet_treat))%>%
              dplyr::mutate(filter_complex= dplyr::case_when(diff_bet_treat>45& as.numeric(motivoegreso_derivacion)==2~1,TRUE~0))%>%
              dplyr::mutate(filter_complex2= dplyr::case_when(diff_bet_treat<60& as.numeric(motivoegreso_derivacion)==1~1,TRUE~0))%>%
              dplyr::filter(filter_complex==1)%>%
              #dplyr::select(hash_key,motivoegreso_derivacion,diff_bet_treat)
              nrow()
            
            tab5_lab_users<-CONS_C1_df_dup_JUN_2020%>% 
              #dplyr::filter(!is.na(diff_bet_treat))%>%
              dplyr::mutate(filter_complex= dplyr::case_when(diff_bet_treat<45& as.numeric(motivoegreso_derivacion)==2~1,TRUE~0))%>%
              dplyr::mutate(filter_complex2= dplyr::case_when(diff_bet_treat<60& as.numeric(motivoegreso_derivacion)==1~1,TRUE~0))%>%
              dplyr::filter(filter_complex==1)%>%
              #dplyr::select(hash_key,motivoegreso_derivacion,diff_bet_treat)
              distinct(hash_key)%>% nrow()
            
            tab6_lab_n<-CONS_C1_df_dup_JUN_2020%>% 
              #dplyr::filter(!is.na(diff_bet_treat))%>%
              dplyr::mutate(filter_complex= dplyr::case_when(diff_bet_treat<45& as.numeric(motivoegreso_derivacion)==2~1,TRUE~0))%>%
              dplyr::mutate(filter_complex2= dplyr::case_when(diff_bet_treat<60& as.numeric(motivoegreso_derivacion)==1~1,TRUE~0))%>%
              dplyr::filter(filter_complex2==1)%>%
              #dplyr::select(hash_key,motivoegreso_derivacion,diff_bet_treat)
              nrow()
            
            tab6_lab_users<-CONS_C1_df_dup_JUN_2020%>% 
              #dplyr::filter(!is.na(diff_bet_treat))%>%
              dplyr::mutate(filter_complex= dplyr::case_when(diff_bet_treat<45& as.numeric(motivoegreso_derivacion)==2~1,TRUE~0))%>%
              dplyr::mutate(filter_complex2= dplyr::case_when(diff_bet_treat<60& as.numeric(motivoegreso_derivacion)==1~1,TRUE~0))%>%
              dplyr::filter(filter_complex2==1)%>%
              #dplyr::select(hash_key,motivoegreso_derivacion,diff_bet_treat)
              distinct(hash_key)%>% nrow()
            tab7_lab<- paste0('* Some users had events fullfilling both conditions (n=',tab6_lab_users+tab5_lab_users-tab4_lab_users,')')

tab4_lab<-paste0('Only entries w/ an entry\n that followed another one\n(both conditions)\n(n = ', tab4_lab_n%>% formatC(big.mark=","),';\nusers =',tab4_lab_users%>% formatC(big.mark=","),')*')

tab5_lab<-paste0('Only entries w/ an entry\n that followed another one \n(< 45 days of difference w/ a posterior entry &\nReferral as a cause of dicharge)\n(n = ', tab5_lab_n%>% formatC(big.mark=","),';\nusers =',tab5_lab_users%>% formatC(big.mark=","),')')

tab6_lab<-paste0('Only entries w/ an entry\n that followed another one \n(< 60 days of difference w/ a posterior entry &\nNot a Referral as a cause of dicharge)\n(n = ', tab6_lab_n%>% formatC(big.mark=","),';\nusers =',tab6_lab_users%>% formatC(big.mark=","),')')
          
DiagrammeR::grViz("
digraph graph2 {

graph [layout = dot]

# node definitions with substituted label text
node [shape = rectangle, width = 5, fillcolor = Biege]
a [label = '@@1']
b [label = '@@2']
c [label = '@@3']
d [label = '@@4']
e [label = '@@5', fontcolor = MidnightBlue, color = MidnightBlue]
f [label = '@@6']
g [label = '@@7', width = 0.001, height = 0.001, color=White]

a -> b 
b -> c 
c -> d #[label= paste0('** Some users had events fullfilling both conditions (n=',tab6_lab_users+tab5_lab_users-tab4_lab_users,')'),fontsize = 9];
d -> {e f} 
{e f} -> g [ dir = none,  color = 'white',fontcolor = white,shape=none, width=0, height=0];

}

[1]:  tab1_lab
[2]:  tab2_lab
[3]:  tab3_lab
[4]:  tab4_lab
[5]:  tab5_lab
[6]:  tab6_lab
[7]:  tab7_lab
")

Figure 1. Decision Tree for the Users with more than one entry

#[label=paste0('Some users had events fullfilling both conditions (n=',tab6_lab_users+tab5_lab_users-tab4_lab_users,')',fontsize = 9];


As seen in Figure 1, we could define that this pairs of events with the same users that could correspond to a continuous treatment, rather than different ones. We focused in these patterns to collapse them into treatments, particularly those related to cases with referrals in the first entry and less than 45 days of difference with a posterior entry.


invisible(c("1. Que las derivaciones hayan terminado siendo dervidados"))
invisible(c("2. Referral falsos, cuando el primer tratamiento es un traspaso perfecto y es considerado como un senda no"))
invisible(c("3. Ver uno a uno los casos que tienen 1 día de tratamiento y que uno es SENDA No y el otro SENDA Sí"))
invisible(c("4. colapsarse en un registro único aquellos registros de usuarios en común que presenten una diferencia menor a 45 para derivaciones y 60 días para el resto de motivos de egreso, entre la fecha de egreso y la fecha de ingreso al siguiente tratamiento (dependiendo de lo que acordemos), y en los que el único cambio registrado entre un tratamiento y otro sea el cambio del ID del centro."))
invisible(c("5. Generar variable con tratamientos concatenados"))
invisible(c("6. Qué hago con los tratamientos con NAs en fecha de egreso. Debiese borrarlos"))

invisible(c("derivaciones que cuenten con un tratamiento posterior, agrupar las entradas que tengan una diferencia menor o igual a 45 días"))

 #CONS_C1_df_dup_JUN_2020%>% dplyr::mutate(motivodeegreso_mod_imp_tidy= case_when(!is.na(diff_bet_treat) & as.character(motivodeegreso_mod_imp)=="Derivación" & grepl("Clínica",tipo_centro_derivacion==<90~"Abandono Temprano" , TRUE~as.character(motivodeegreso_mod_imp))%>% nrow()

#- si menor
#se puede pensar que un abandono tardío en verdad puede abarcar al menos 1 mes de tratamiento. Following the criteria stated in the annex and the terminological glossary, 
#las derivaciones deberían abarcar hasta 45 días.
#
#si hay más de 1095 días 

#menor_60_dias_diff
#motivoegreso_derivacion
#obs_cambios_ninguno

#tiene casos inválidos
CONS_C1_df_dup_JUN_2020%>% 
  dplyr::filter(!is.na(diff_bet_treat))%>%
#  dplyr::group_by(hash_key)%>%
#  dplyr::mutate(sum_validos=sum(!is.na(diff_bet_treat)))%>%
#  ungroup()%>%
#  dplyr::filter(sum_validos>0)%>%
  dplyr::mutate(menor_45_dias_diff=ifelse(diff_bet_treat<45,1,0))%>%
  janitor::tabyl(menor_45_dias_diff,motivoegreso_derivacion)%>%
  adorn_totals("col") %>%
  adorn_percentages("col") %>%
  adorn_pct_formatting(digits = 1) %>%
  adorn_ns()%>%
  knitr::kable(format= "html", format.args= list(decimal.mark= ".", big.mark= ","),
               caption="Table 1. Diff. in Treatments <45 days, by Referral (only cases that had an entry after another one)",
               align= c("l",rep('c', 5)), col.names = c("Diff. in Treatments <45 days","Not a Referral","Referral", "Total"))%>%
  
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover"),font_size= 8)%>%
        kableExtra::add_footnote(paste0("Note= Percentages by Column; Cases with an entry that follows them (n= ",CONS_C1_df_dup_JUN_2020%>% dplyr::filter(!is.na(diff_bet_treat))%>%nrow()%>% formatC(big.mark=","),"; users=",CONS_C1_df_dup_JUN_2020%>% dplyr::filter(!is.na(diff_bet_treat))%>%distinct(hash_key)%>% nrow()%>% formatC(big.mark=","),")"), notation = "none")%>%
  kableExtra::scroll_box(width= "100%", height = "250x")
Table 1. Diff. in Treatments <45 days, by Referral (only cases that had an entry after another one)
Diff. in Treatments <45 days Not a Referral Referral Total
0 86.4% (18772) 31.2% (3084) 69.1% (21856)
1 13.6% (2944) 68.8% (6809) 30.9% (9753)
Note= Percentages by Column; Cases with an entry that follows them (n= 31,609; users=20,524)


As seen in the Table above, most of the referrals that had a posterior treatment had a difference of 45 days or less, compared to other causes of admission. Considering that, we decided to get an impression over the amount of time that took to report another entry within users that had different causes of discharge in a previous treatment.


#http://rstudio-pubs-static.s3.amazonaws.com/316989_83cbe556125645b698c9ff6cf88c4c1a.html
#https://thriv.github.io/biodatasci2018/r-survival.html
#http://si.biostat.washington.edu/sites/default/files/modules/SISCR_2018_11_all-2pp_0.pdf
#https://www.researchgate.net/profile/Claudia_Castro-Kuriss/publication/325390160_Analisis_de_Supervivencia_mediante_el_empleo_de_R/links/5b0aba27a6fdcc8c25333860/Analisis-de-Supervivencia-mediante-el-empleo-de-R.pdf?origin=publication_detail
#http://www.sthda.com/english/wiki/survival-analysis-basics

#SURVIVAL= Explores factors that are thought to influence the chance that the event occurs
#Datos censurados= pueden ser por distintas causas:
    #- El paciente no refirió un evento (la readmissión) durante el estudio, y no sabemos si el evento ocurrió después. ESTOS SON LOS QUE TENGO QUE DARLES UN DIFF TREAT HASTA EL DIA DE HOY. SIEMPRE Y CUANDO TENGAN MENOS DE 1095 DIAS PARA PERDIDOS EN FECHA DE EGRESO, Y NO ESTÉN TRUNCADOS A LA DERECHA PORQUE NO SE LES TERMINÓ EL PRIMER TRAT.
    #Esta censura puede ocurrir cuando un usuario abandona un estudio, se pierde el seguimiento o no experimenta el evento una vez finaliza el estudio
    #- Truncado a la derecha: quien se perdió por una razón. Truncado a la derecha
    #Las muestras con censura aleatoria se consideran generalmente censuradas por derecha debido a que se van incorporando progresivamente los tiempos de fallas de distintas unidades
    #Los eventos que no experimentaron el evento en el tiempo de estudio se les censurará hasta el último tiempo de registro
    # Una suposición menos restrictiva que la suposición de independencia entre Ci y Ti, pero que alcanza para que los métodos sean válidos, es “la censura independiente” o “censura no informativa”:la probabilidad de que un individuo sea censurado en el instante t0 no depende de que ese individuo tenga inusualmente alto (o bajo) riesgo de evento.
    #Censoring may arise in the following ways:
    ###a patient has not (yet) experienced the event of interest, such as relapse or death, within the study time period;
    ###a patient is lost to follow-up during the study period;
    ###a patient experiences a different event that makes further follow-up impossible.
    #This type of censoring, named right censoring, is handled in survival analysis.

#– Recurrence rate
survfit_days_new_treat<-survfit(Surv(diff_bet_treat, status) ~ motivodeegreso_mod_imp, 
                                data=CONS_C1_df_dup_JUN_2020%>% 
                                  dplyr::mutate(diff_nas_fech_egres= as.numeric(difftime(lubridate::ymd("2019-11-13"),fech_ing, units = "days")))%>%
                                  #dplyr::filter(is.na(fech_egres_imp))%>% dplyr::select(fech_ing,fech_egres_imp,diff_nas_fech_egres)
                                  dplyr::mutate(perdi_seguimiento=dplyr::case_when(is.na(fech_egres_imp)&diff_nas_fech_egres>=1095~1,TRUE~0))%>% 
                                  dplyr::filter(perdi_seguimiento==0)%>% #NI SIQUIERA TERMINARON EL PIMER EVNTO, Y LO MAS PROBABLE ES QUE NUNCA REGISTRARON FECHA DE TÉRMINO. ESTPS SI QUE SI DEBO SACARLOS.
                                  dplyr::mutate(no_tienen_ni_el_primer_evento=dplyr::case_when(is.na(fech_egres_imp)&diff_nas_fech_egres<1095~1,
                                                                                     TRUE~0))%>% 
                                 # dplyr::filter(no_tienen_ni_el_primer_evento==0)%>%#NO HAN TERMINADO EL TRATAMIENTO. CENSURA SIMPLE TIPO 1, PERO SE DIFERENCIA DE LOS QUE NUNCA LLEGARON SIQUIERA A TENER EL PRIMER EVENTO. POR ESO A ESOS CASOS DEBO SACARLOS. AUNQUE NO ESTOY SEGURO, PORQUE PUEDE QUE ESTOS CASOSO TAMBIÉN FORMEN PARTE ED LA CENSURA AUTOMATICA QUE HACE R.
                                  #LOS QUE TIENEN 
                                  dplyr::mutate(status=dplyr::case_when(!is.na(diff_bet_treat)~1,TRUE~0)), #censurar si no tienen fechas entre trat porque no tienen un siguiente
                                    #mutate(status=dplyr::case_when(!is.na(fech_egres_imp)~1,TRUE~0)), #censurar fechas de egreso ##se supone q este es más puro, no sé
                                type = "kaplan-meier", #The Kaplan-Meier curve is a nonparametric estimator of the survival distribution (i.e. the “estimation” component of the “test/estimation” approach to analysis of time-to-event data)
                                error = "tsiatis", conf.type = "log-log", conf.int = 0.95)
#So we only know that the patient survived AT LEAST 13 months, but we have no other information available about the patient's status.  This type of censoring (also known as "right censoring") makes linear regression an inappropriate way to analyze the data due to censoring bias.

#simple
#survfit_days_new_treat_simple<-survfit(Surv(diff_bet_treat, status) ~ motivodeegreso_mod_imp, 
#                                data=CONS_C1_df_dup_JUN_2020%>% mutate(status=dplyr::case_when(!is.na(diff_bet_treat)~1,TRUE~0))%>% data.frame())

#Utilizando esta información se compara si existe alguna diferencia de las curvas de supervivencia entre los estados 
#In order to determine if there is a statistically significant difference between the survival curves, we perform what is known as a log-rank test, which tests the following hypothesis:
##H0: There is no difference in the survival function between those who were on maintenance chemotherapy and those who weren't on maintenance chemotherapy.
##Ha: There is a difference in the survival function between those who were on maintenance chemotherapy and those who weren't on maintenance chemotherapy.
#También con la orden “survdiff”, podemos realizar un test de hipótesis no paramétrico que nos diga si la diferencia de la probabilidad de supervivencia entre subgrupos es significativa o no. En este caso lo sería, al obtener un p-value < 0,05, experimentando esas diferencias en las zonas Centro y Sur, que sería en donde deberíamos de realizar un estudio más en profundidad.
  invisible(  
  survdiff(Surv(diff_bet_treat, status) ~ motivodeegreso_mod_imp, data=CONS_C1_df_dup_JUN_2020%>% mutate(status=dplyr::case_when(!is.na(diff_bet_treat)~1,TRUE~0)), rho = 0)  
  )
  #Prueba log-rank
  invisible(  
  survdiff(Surv(diff_bet_treat, status) ~ motivodeegreso_mod_imp, data=CONS_C1_df_dup_JUN_2020%>% mutate(status=dplyr::case_when(!is.na(diff_bet_treat)~1,TRUE~0)), rho = 1) 
  )

#survfit_days_new_treat_simple
survfit_days_new_treat_dataframe<-summary(survfit_days_new_treat, times=seq(0, 3500, 100), print.rmean=T,digits=2)
#
data.table(survfit_days_new_treat_dataframe$table,keep.rownames = T)%>%
  knitr::kable(format= "html", format.args= list(decimal.mark= ".", big.mark= ","),
               caption="Table 2. Estimates related to the probability that an entry kept free of a posterior one",
               align= c("l",rep('c', 5)), col.names = c("Cause of Discharge","Records","n.max", "n.start","events","rmean","se(rmean)","median", "95%CI Lower","95%CI Upper"))%>%
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover"),font_size= 8)%>%
        kableExtra::add_footnote(paste0("Note= Treatments that did not finished their first treatment were discarded (n=",CONS_C1_df_dup_JUN_2020%>% 
    dplyr::mutate(diff_nas_fech_egres= as.numeric(difftime(lubridate::ymd("2019-11-13"),fech_ing, units = "days")))%>%dplyr::mutate(perdi_seguimiento=dplyr::case_when(is.na(fech_egres_imp)&diff_nas_fech_egres>=1095~1,TRUE~0))%>%dplyr::filter(perdi_seguimiento==1)%>% nrow()%>% formatC(big.mark=","),"); Excluded cases with no cause of discharge (n=",CONS_C1_df_dup_JUN_2020%>% dplyr::mutate(diff_nas_fech_egres= as.numeric(difftime(lubridate::ymd("2019-11-13"),fech_ing, units = "days")))%>% dplyr::mutate(perdi_seguimiento=dplyr::case_when(is.na(fech_egres_imp)&diff_nas_fech_egres>=1095~1,TRUE~0))%>%  dplyr::filter(perdi_seguimiento==0)%>% dplyr::mutate(status=dplyr::case_when(!is.na(diff_bet_treat)~1,TRUE~0))%>% dplyr::filter(!is.na(diff_bet_treat),is.na(motivodeegreso_mod_imp))%>% nrow() %>% formatC(big.mark=","),")"), notation = "none")%>%
  kableExtra::scroll_box(width= "100%", height = "250x")
Table 2. Estimates related to the probability that an entry kept free of a posterior one
Cause of Discharge Records n.max n.start events rmean se(rmean) median 95%CI Lower 95%CI Upper
motivodeegreso_mod_imp=Abandono Tardio 9,080 9,080 9,080 9,080 578.4441 6.264521 374 357 386
motivodeegreso_mod_imp=Abandono Temprano 4,803 4,803 4,803 4,803 507.1576 8.337565 295 283 309
motivodeegreso_mod_imp=Alta Administrativa 2,998 2,998 2,998 2,998 496.9633 11.010819 262 241 286
motivodeegreso_mod_imp=Alta Terapéutica 4,826 4,826 4,826 4,826 601.5468 9.021110 383 363 401
motivodeegreso_mod_imp=Derivación 9,893 9,893 9,893 9,893 165.2633 3.933942 5 4 5
Note= Treatments that did not finished their first treatment were discarded (n=264); Excluded cases with no cause of discharge (n=9)
#median time to event (the time when half the records have an event).
#Even if median survival has been reached in a group, it might not be possible to calculate complete confidence intervals for those median values,
# just knowing the difference in median survival values doesn't necessarily tell you which is better for prognosis--then you have to specify which prognosis time you care about.
#The restricted mean (rmean) and its standard error se(rmean) are based on a truncated estimator. When the last censoring time is not random this quantity is occasionally of interest.
#El estimador de S es lo que se llama curva de supervivencia (“survival curve”). 
event="no"
if(event=="si"){
plot(mfit2, col=c(1,2,1,2), lty=c(2,2,1,1),
     mark.time=FALSE, lwd=2, xscale=12,
     xlab="Years post diagnosis", ylab="Probability in State")
legend(3000, .6, c("death:female", "death:male", "pcm:female", "pcm:male"),
         col=c(1,2,1,2), lty=c(1,1,2,2), lwd=2, bty='n')
}
plot(survfit_days_new_treat,
         xlab = "Days of difference with a posterior treatment",  conf.int = T,mark.time = F,
     ylab = "Ssurvival probability",
     col=c("springgreen4","purple","cornflowerblue","tan3","gray20"), lwd=2) # 
legend("topright", c("Late Withdrawal", "Early Withdrawal", "Administrative Discharge", "Therapeutic Discharge","Referral"),
         col=c("springgreen4","purple","cornflowerblue","tan3","gray20"), lty=c(1,1,1,1), lwd=2, bty='n')
mtext("Note. Users who did not finish their first treatment or did not show recurrence have been censored", side=1,size=.5,cex=.7,outer=F,at=1500,4)
Figure 2. Recurrence-free interval of a treatment according to cause of discharge of the first treatment

Figure 2. Recurrence-free interval of a treatment according to cause of discharge of the first treatment


From the Figure above, we can interpret that referrals had most entries with 0’s or a minimum time with a posterior one. But how many entries could users had?, we generated a histogram distinguishing those cases that summed no more than 0 days of differences between entries (possibly part of the same treatment with only minor changes), from those with more days of treatment


c26 <- c(
  "dodgerblue2", "#E31A1C", # red
  "green4",
  "#6A3D9A", # purple
  "#FF7F00", # orange
  "gray16", "gold1",
  "skyblue2", "#FB9A99", # lt pink
  "palegreen2",
  "#CAB2D6", # lt purple
  "#FDBF6F", # lt orange
  "gray70", "khaki2",
  "maroon", "orchid1", "deeppink1", "blue1", "steelblue4",
  "darkturquoise", "green1", "yellow4", "yellow3",
  "darkorange4", "brown", "gray40")
c28 <- c(
  "dodgerblue2", "#E31A1C",  "green4",  "#6A3D9A",  "#FF7F00", "gray16", "gold1", "skyblue2", "#FB9A99",  "palegreen2","orchid1", "#CAB2D6", # lt purple
  "#FDBF6F",  "gray70","deeppink1", "khaki2","steelblue4",  "maroon",  "blue1", "brown",  "darkturquoise", "green1", "yellow4", "yellow3","pink",
  "darkorange4",  "gray40", "blue","black","red","green", "orange", "white", "blue4", "violet")

get_distinct_hues <- function(ncolor,s=0.5,v=0.95,seed=350) {
  golden_ratio_conjugate <- 0.618033988749895
  set.seed(seed)
  h <- runif(1)
  H <- vector("numeric",ncolor)
  for(i in seq_len(ncolor)) {
    h <- (h + golden_ratio_conjugate) %% 1
    H[i] <- h
  }
  hsv(H,s=s,v=v)
}
p3_1<-CONS_C1_df_dup_JUN_2020%>%
  dplyr::filter(!is.na(diff_bet_treat))%>%
ggplot(aes()) + 
  geom_segment(aes(x = as.POSIXct(as.Date(fech_ing)), xend = as.POSIXct(as.Date(fech_egres_imp)),
                   y = hash_key, yend = hash_key,colour=as.factor(row),size=1/100)) + 
    scale_x_datetime(breaks=scales::date_breaks("1 year"), 
                  limits = as.POSIXct(c('2010-01-01 09:00:00','2020-01-01 09:00:00')),
                  labels = scales::date_format("%m/%y")) +
 # scale_color_manual(values=get_distinct_hues(31609)) +
  theme(axis.line=element_blank(),
          axis.ticks=element_blank(),axis.title.y=element_text("HASHs"),axis.text.y=element_blank(),
          axis.title.x=element_text(""),legend.position="none",
          panel.background=element_blank(),panel.border=element_blank(),panel.grid.major=element_blank(),
          panel.grid.minor=element_blank(),plot.background=element_blank(), plot.title = element_text(hjust = 0))+
  scale_size_identity()+ ##para cambiar el ancho de cada segmento
  #scale_x_date(breaks = scales::date_breaks("1 year"), date_labels = "%b %d") +
    theme(plot.caption = element_text(face= "italic",hjust = 0)) +
    labs(x = "Dates of admission and discharge", y="HASHs", 
         caption="Example of 4 clean trajectories. Colored lines represent different rows in the dataset, but same HASH")
ggplotly(p3_1)
p3<-CONS_C1_df_dup_JUN_2020%>%
  #dplyr::filter(!is.na(diff_bet_treat))%>%
  dplyr::group_by(hash_key)%>%
  dplyr::mutate(sum_validador=sum(diff_bet_treat,na.rm=T), 
                n=n(),
                con_diff_dias=if_else(sum_validador>0,1,0,NA_real_))%>%
  distinct(hash_key,.keep_all=T)%>%
  dplyr::select(n,con_diff_dias)
  
  groupA <- p3 %>% filter(con_diff_dias == 1)
  groupB <- p3 %>% filter(con_diff_dias == 0)
  
#p3<-ggplot(p3,aes(x=n))+
#  geom_histogram_interactive()+
#  facet_wrap(~sin_diff_dias, labeller = as_labeller(c(`0` = "No differences between Treatments in Days", `1` = "Differences Between Treatments in Days")))+
#  sjPlot::theme_sjplot2()+
#    labs(x="",y="Frequencies ", x="No. of cases by user")+
# # xlim(c(2,10))+
#  ylim(c(0,15000))+
#scale_x_continuous(breaks = seq(from = 0, to = 13, by = 1))+
# theme(panel.grid.minor=element_blank(),
#       plot.background=element_blank(),
#        panel.background=element_blank(),
#       panel.border=element_blank(),
#       panel.grid.major=element_blank())+
#  labs(caption="Note. Only selected users with more than 1 case")

tooltip_css <- "background-color:gray;color:white;font-style:italic;padding:10px;border-radius:10px 20px 10px 20px;"

#ggiraph(code = {print(p3)}, tooltip_extra_css = tooltip_css, tooltip_opacity = .75 )

p3 <- plot_ly(alpha = 0.5) %>% 
  add_histogram(x = ~groupA$n,
                name = "Differences Between Treatments in Days") %>% 
    add_histogram(x = ~groupB$n,
                name = "No differences between Treatments in Days") %>% 
  layout(barmode = "overlay",
         xaxis = list(title = "No. of cases by user",
                      
                      zeroline = T),
         yaxis = list(title = "Frequency of different users",
                      zeroline = T))%>%
layout(legend = list(orientation = "h",   # show entries horizontally
                     xanchor = "center",  # use center of legend as anchor
                     x = 0.5, y= -.04))  %>%
  config(displayModeBar = FALSE) %>%
layout(hovermode = 'compare')%>%
  layout(
    xaxis = list(
      dtick = 1, 
      tick0 = 1, 
      tickmode = "linear"
    )
  )
p3

Figure 3. Histogram of No. of Treatments depending on Sum of Diff Between Entries (if any)


As seen in the Figure above, the users that had only one entry represent the greater amount of people that had no cumulative days of difference between another entry because there were no other. This is why we focused on users that had more than one treatment, and we could highlight a small amount of users that had 2 entries with no days of difference between them, and a much smaller amount had three entries with no differences in days between them. Possibly, we could consider that these users only had one treatment with minor changes between a different entry. Conversely, most of the users that had days of difference in entries within them, had 2 cases and exceptionally 3 (notice that many of these users could have a treatment with differences of 0 days between another, but a third treatment with more days, leading to have a total difference of more than 0). Must note that some user had 13 entries.


Also, we considered necessary to get an overview of the distribution of changes by days (divided in 20 equal parts), and depending on the cause of discharge of the first entry, to get an impression of what are the major changes that are occurring between different entries of each user.


invisible(c("¿cuántos casos sin diferencias de tratamiento tienen por motivo de egreso"))

p11<-
  CONS_C1_df_dup_JUN_2020%>% 
    dplyr::filter(!is.na(diff_bet_treat), !is.na(motivodeegreso_mod_imp))%>%
    #dplyr::mutate(motivoegreso_derivacion=factor(motivoegreso_derivacion, levels = c("Motivo: Otro", "Motivo: Derivación","NA")))%>%
    
    dplyr::mutate(diff_bet_treat_bar=round(diff_bet_treat,0)) %>%
    dplyr::mutate(diff_bet_treat_bar=cut2(diff_bet_treat_bar, g =20))%>%
    
    dplyr::mutate(grupo_var=factor(obs_cambios_num))%>%
    dplyr::group_by(diff_bet_treat_bar, grupo_var,motivodeegreso_mod_imp)%>%
    summarise(n_2_grupos=n())%>%
    dplyr::ungroup()%>%
    dplyr::group_by(motivodeegreso_mod_imp,diff_bet_treat_bar)%>%
    dplyr::mutate(total_n=sum(n_2_grupos))%>%
    dplyr::mutate(freq = (n_2_grupos / total_n))%>%
    dplyr::ungroup()%>%
    dplyr::group_by(motivodeegreso_mod_imp)%>%
    dplyr::mutate(total_n_solo_mot_egreso=sum(n_2_grupos))%>%
    dplyr::mutate(text=paste('% Cause Discharge by No. Days: ', scales::percent(freq,accuracy =0.01), '<br>', #formatC(positivos_acumulados, format="f", big.mark=",", digits=0)
                            'Cause of Discharge: ', motivodeegreso_mod_imp , '<br>',
                            'Total Frequency by Days: ', total_n , '<br>',
                            'Frequency of Cause of Discharge by No. Days: ',n_2_grupos, '<br>',
                            'No. Days:',diff_bet_treat_bar))%>%

    ggplot2::ggplot(aes(x = diff_bet_treat_bar, y = n_2_grupos,fill=grupo_var,text=text))+
    geom_bar(stat='identity', alpha=.8) + 
    scale_x_discrete()+
    scale_fill_manual(name= "No. of changes",values=c("cornsilk3", "lightskyblue2", "#56B4E9", "steelblue","slategray4")) +
    sjPlot::theme_sjplot2()+
    labs(x="",y="", fill="No. of changes")+
    #ylim(0,101)+
    #scale_y_continuous(limits=c(0,1),labels = scales::percent) +
    theme(legend.position="bottom")+
    guides(fill=guide_legend(title="No. of changes",ncol=5))+
    theme(legend.text = element_text(size=9))+
    theme(panel.grid.minor = element_blank(), 
          panel.grid.major = element_blank(), 
          panel.grid.major.x = element_blank(),
          panel.background = element_blank(),
          axis.title.x = element_blank())+
    theme(axis.text.x = element_text(vjust = 0.5,hjust = 0.5,angle = 90, size= 6.5), plot.caption= element_text(hjust=0))+
    facet_wrap(~motivodeegreso_mod_imp, ncol=3, labeller = as_labeller(c(`Abandono Tardio` = "Late Withdrawal", `Abandono Temprano` = "Early Withdrawal",`Alta Administrativa` = "Administrative Discharge",`Alta Terapéutica` = "Therapeutic Discharge",`Derivación` = "Referral")), strip.position = "right")+ 
    geom_vline(aes(xintercept = 45), 
               linetype = "dashed", colour = "red",size = 1)+
    labs(fill="No. of changes",caption=paste0("Note. ",CONS_C1_df_dup_JUN_2020%>% dplyr::filter(is.na(diff_bet_treat))%>% nrow() %>% formatC(big.mark = ",")," obs. had missing data that corresponded to unique treatments by users;\nDays of treatment were divided en 35 equal parts"))+
    theme(strip.background =element_rect(colour=NA,fill=NA, size=3.5))+
    theme(strip.text = element_text(colour = 'gray60', size=8),
          plot.caption= element_text(size=7))+
    theme(legend.title = element_text(colour = 'gray30', size=8))+
  theme(
    strip.text.x = element_text(margin = margin(10, 0, 10, 0))
  ) 
ggplotly(p11, tooltip = "text")%>%
    layout(legend = list(title= list(text = "Changes in SENDA,Center,Program or Plan"),
                         orientation = "h",   # show entries horizontally
                         xanchor = "center",  # use center of legend as anchor
                         x = 0.5, y=-0.09)) %>%
  config(displayModeBar = FALSE) %>%
layout(hovermode = 'compare') 

Figure 4. Distribution of No. of Changes by Sum of Diff Between Entries Depending on Cause of Discharge of the first entry


From the Table above, we can add support to the fact that referrals had a great amount of posterior entries, compared to the other causes of discharge. In the entries with referrals as a cause of discharge, the first five bars represented most of the entries with posterior ones. Notably, these entries experienced a lot of changes in each following treatment (around 2 or 3).


Collapse Continuous or Almost Continuous Entries into Treatments

We decided to collapse the different entries into a single treatment. This required to adopt different strategies to collapse values of variables of different types and characteristics.


##f     #Tratamiento más largo //#g- Replacedfavored dgs.-a // #h     #Sum values x_se_trata_mujer_emb_n  usuario_tribunal_trat_droga_n discapacidad_n ha_estado_embarazada_egreso_n tiene_menores_de_edad_a_cargo_n
DiagrammeR::grViz(
  "digraph structs {
    node [shape=record];
    struct [label='<f1> Wide format(a)|<f2> Maximum/Last value(b)|<f3> Minimum/First value(c)|<f4> Kept more vulnerable category(d)|<f5> Same value(e)|<f6>Largest treatment(f)|<f8> Favored dgs.-a(g)|<f12> Sum values(h)'];
    struct_f1 [label='{row|nombre_centro|tipo_centro|servicio_de_salud|senda|id_centro}'];
    struct_f2 [label='{numero_de_hijos|num_hijos_ing_trat_res|tipo_centro_derivacion|fech_egres_imp|motivodeegreso_mod_imp|macrozona|nombre_region|comuna_residencia_cod|identidad_de_genero|tipo_de_plan_2*|id_centro*|ano_bd*}'];
    struct_f3 [label='{fech_ing|fecha_ingreso_a_convenio_senda|edad_al_ing|origen_ingreso_mod|edad_al_ing_grupos|ano_bd*}'];
    struct_f4 [label='{escolaridad|compromiso_biopsicosocial|dg_global_nec_int_soc_or|dg_nec_int_soc_cap_hum_or|dg_nec_int_soc_cap_fis_or|dg_nec_int_soc_cap_soc_or|evaluacindelprocesoteraputico|eva_consumo|eva_fam|eva_relinterp|eva_ocupacion|eva_sm|eva_fisica|eva_transgnorma|dg_trs_psiq_cie_10_egres_or|dg_global_nec_int_soc_or_1|dg_nec_int_soc_cap_hum_or_1|dg_nec_int_soc_cap_fis_or_1|dg_nec_int_soc_cap_soc_or_1|tiene_menores_de_edad_a_cargo|x_se_trata_mujer_emb|usuario_tribunal_trat_droga|ha_estado_embarazada_egreso|dg_trs_cons_sus_or|opcion_discapacidad}']; 
    struct_f5 [label='{hash_key|id|hash_rut_completo|nacionalidad|sexo_2|embarazo|id_mod|obs|fech_nac|edad_ini_cons|edad_ini_sus_prin|sus_ini|estado_conyugal_2|edad_grupos|freq_cons_sus_prin|via_adm_sus_prin_act|etnia_cor|nacionalidad_2|etnia_cor_2|sus_ini_2|sus_ini_3|sus_ini_mod|at_least_one_cont_entry}'];
    struct_f6 [label='{con_quien_vive|tipo_de_plan_2*|estatus_ocupacional|cat_ocupacional|origen_ingreso|tipo_de_vivienda_mod|tenencia_de_la_vivienda_mod|rubro_trabaja_mod|sus_principal_mod|otras_sus1_mod|otras_sus2_mod|otras_sus3_mod|tipo_de_programa_2}'];
    struct_f8 [label='{dg_trs_psiq_dsm_iv_or|dg_trs_psiq_sub_dsm_iv_or|x2_dg_trs_psiq_dsm_iv_or|x2_dg_trs_psiq_sub_dsm_iv_or|x3_dg_trs_psiq_dsm_iv_or|x3_dg_trs_psiq_sub_dsm_iv_or|dg_trs_psiq_cie_10_or|dg_trs_psiq_sub_cie_10_or|x2_dg_trs_psiq_cie_10_or|x2_dg_trs_psiq_sub_cie_10_or|x3_dg_trs_psiq_cie_10_or|x3_dg_trs_psiq_sub_cie_10_or|diagnostico_trs_fisico|otros_probl_at_sm_or}'];
    struct_f12 [label='{dias_trat_imp|dias_trat_inv}']; 
    struct:f1-> struct_f1;
    struct:f2-> struct_f2;
    struct:f3-> struct_f3;
    struct:f4-> struct_f4;
    struct:f5-> struct_f5;
    struct:f6-> struct_f6;
    struct:f8-> struct_f8;
    struct:f12-> struct_f12;
  }")

Figure 5. Criteria to Transform Variables

  #width=14, height=7)
invisible(c("- row = Included them in a wide format

- nombre_centro = Included them in a wide format

- tipo_centro = Included them in a wide format

- servicio_de_salud = Included them in a wide format

- senda = Included them in a wide format

- id_centro = Included them in a wide format

- numero_de_hijos = Kept the maximum value

- num_hijos_ing_trat_res = Kept the maximum value

- tipo_centro_derivacion = Kept the maximum value

- fech_egres_imp = Kept the maximum value

- motivodeegreso_mod_imp = Kept the maximum value

- macrozona = Kept the maximum value

- nombre_region = Kept the maximum value

- comuna_residencia_cod = Kept the maximum value

- ano_bd = Kept the minimum & maximum value

- fech_ing = Kept the minimum value

- fecha_ingreso_a_convenio_senda = Kept the minimum value

- edad_al_ing = Kept the minimum value

- origen_ingreso_mod = Kept the minimum value

- edad_al_ing_grupos = Kept the minimum value

- con_quien_vive = Kept the value of the largest treatment --> Lo cambié, no es fácil poder jerarquizar qué es lo más vulnerable: Va a depender del contexto. Ej., vivir con un esposo alcoholico puede ser peor q vivir sola.

- sus_principal = Kept the more vulnerable category --> lo elimino, no me sirve ahora.  Tengo la sus_principal_mod

- otras_sus1 = Kept the more vulnerable category

- otras_sus2 = Kept the more vulnerable category

- otras_sus3 = Kept the more vulnerable category

- escolaridad = Kept the more vulnerable category

- hash_rut_completo = Kept the same value

- nacionalidad = Kept the same value

- sexo_2 = Kept the same value

- embarazo = Kept the same value

- id_mod = Kept the same value

- obs = Kept the same value

- fech_nac = Kept the same value

- edad_ini_cons = Kept the same value

- edad_ini_sus_prin = Kept the same value

- sus_ini = Kept the same value

- estado_conyugal_2 = Kept the same value

- edad_grupos = Kept the same value

- freq_cons_sus_prin = Kept the same value

- via_adm_sus_prin_act = Kept the same value

- etnia_cor = Kept the same value

- nacionalidad_2 = Kept the same value

- etnia_cor_2 = Kept the same value

- sus_ini_2 = Kept the same value

- sus_ini_3 = Kept the same value

- sus_ini_mod = Kept the same value

- obs_cambios = Kept the same value --> no es relevante, sacar (puede superponerse con otros cambios intermedios)

- obs_cambios_ninguno = Kept the same value --> no es relevante, sacar (puede superponerse con otros cambios intermedios)

- obs_cambios_num = Kept the same value --> no es relevante, sacar (puede superponerse con otros cambios intermedios)

- obs_cambios_fac = Kept the same value --> no es relevante, sacar (puede superponerse con otros cambios intermedios)

- at_least_one_cont_entry = Kept the same value

- tipo_de_plan_2 = Kept the value of the largest treatment

- tipo_de_programa_2 = Kept the value of the largest treatment

- estatus_ocupacional = Kept the value of the largest treatment

- cat_ocupacional = Kept the value of the largest treatment

- origen_ingreso = Kept the value of the largest treatment

- tipo_de_vivienda_mod = Kept the value of the largest treatment

- tenencia_de_la_vivienda_mod = Kept the value of the largest treatment

- rubro_trabaja_mod = Kept the value of the largest treatment

- x_se_trata_mujer_emb = Replaced if present

- usuario_tribunal_trat_droga = Replaced if present

- discapacidad = Replaced if present

- dg_trs_cons_sus_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- dg_trs_psiq_dsm_iv_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- dg_trs_psiq_sub_dsm_iv_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- x2_dg_trs_psiq_dsm_iv_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- x2_dg_trs_psiq_sub_dsm_iv_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- x3_dg_trs_psiq_dsm_iv_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- x3_dg_trs_psiq_sub_dsm_iv_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- dg_trs_psiq_cie_10_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- dg_trs_psiq_sub_cie_10_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- x2_dg_trs_psiq_cie_10_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- x2_dg_trs_psiq_sub_cie_10_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- x3_dg_trs_psiq_cie_10_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- x3_dg_trs_psiq_sub_cie_10_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- diagnostico_trs_fisico = Replaced if present;  Favored diagnostics; Included them in a wide format

- otros_probl_at_sm_or = Replaced if present;  Favored diagnostics; Included them in a wide format

- compromiso_biopsicosocial = Replaced if present;  Kept more vulnerable category

- dg_global_nec_int_soc_or = Replaced if present;  Kept more vulnerable category

- dg_nec_int_soc_cap_hum_or = Replaced if present;  Kept more vulnerable category

- dg_nec_int_soc_cap_fis_or = Replaced if present;  Kept more vulnerable category

- dg_nec_int_soc_cap_soc_or = Replaced if present;  Kept more vulnerable category

- evaluacindelprocesoteraputico = Replaced if present;  Kept more vulnerable category

- eva_consumo = Replaced if present;  Kept more vulnerable category

- eva_fam = Replaced if present;  Kept more vulnerable category

- eva_relinterp = Replaced if present;  Kept more vulnerable category

- eva_ocupacion = Replaced if present;  Kept more vulnerable category

- eva_sm = Replaced if present;  Kept more vulnerable category

- eva_fisica = Replaced if present;  Kept more vulnerable category

- eva_transgnorma = Replaced if present;  Kept more vulnerable category

- dg_trs_psiq_cie_10_egres_or = Replaced if present;  Kept more vulnerable category

- dg_global_nec_int_soc_or_1 = Replaced if present;  Kept more vulnerable category

- dg_nec_int_soc_cap_hum_or_1 = Replaced if present;  Kept more vulnerable category

- dg_nec_int_soc_cap_fis_or_1 = Replaced if present;  Kept more vulnerable category

- dg_nec_int_soc_cap_soc_or_1 = Replaced if present;  Kept more vulnerable category

- tiene_menores_de_edad_a_cargo = Replaced if present;  Kept more vulnerable category

- sus_principal_mod = Replaced if present;  Kept more vulnerable category

- identidad_de_genero = Replaced if present;  Kept more vulnerable category; Included them in a wide format --> no tiene sentido dejarlo en wide format, lo cambié a opc d-g

- opcion_discapacidad = Replaced if present; Included them in a wide format

- ha_estado_embarazada_egreso = Replaced if present; Included them in a wide format

- dias_trat_inv = Sum values

- dias_trat_imp = Sum values")
)


We generated a subset of entries that had less than 45 days of difference with a posterior entry and a referral as a cause of discharge, and we also included this posterior entry that would mostly replace the values of these initial and intermediate entries.


Once we subsetted the entries, we found that many users had more than one entry that can be considered as part of a treatment.


invisible(c("2.el problema que tengo es que los filtros solo seleccionan como candidatos a la transformación a los casos intermedios, pero tengo casos al final que no van a cumplir con las condiciones. Eso es problemático con casos que tienen más de una entrada intermedia"))
invisible(c("3.creo que los puedo identificar ocupando un siguiente lag"))

invisible(c("1. si es menor a 45 días y es referral, seleccionar las filas q podrían ser absorvidas, más el sig tratamiento"))
CONS_C1_JUN_2020_row_sig_row<-
  CONS_C1_df_dup_JUN_2020%>%
      #dplyr::filter(!is.na(diff_bet_treat))%>% #31,609, no hay NAs en derivación, los que son NA son 0.
      dplyr::mutate(filter_complex= dplyr::case_when(!is.na(diff_bet_treat) & diff_bet_treat<45 & as.character(motivoegreso_derivacion)=="Referral"~1,TRUE~0))%>%
      dplyr::arrange(hash_key)%>%
      dplyr::group_by(hash_key)%>%
      dplyr::mutate(sig_row=lag(row), sig_fech_egres_imp=lag(fech_egres_imp),sig_motivoegres_ref=lag(motivoegreso_derivacion),n_por_hash=n())%>%
      ungroup()%>%
      dplyr::filter(filter_complex==1)%>%
      # dplyr::select(row,hash_key,fech_ing,fech_egres_imp,motivoegreso_derivacion,obs_cambios,diff_bet_treat,sig_row,n_por_hash) %>% View() #0007678b8b35fa0961d1e8110fbf9620 
      dplyr::select(row,sig_row)
#6,809*2 =   13,618

  CONS_C1_df_dup_JUN_2020%>%
    dplyr::filter(row %in% unlist(c(CONS_C1_JUN_2020_row_sig_row$row,CONS_C1_JUN_2020_row_sig_row$sig_row)))%>%
    dplyr::arrange(hash_key,desc(fech_ing))%>%
    dplyr::mutate(filter_complex_anterior= dplyr::case_when(!is.na(lag(diff_bet_treat)) & lag(diff_bet_treat)<45 & as.character(lag(motivoegreso_derivacion))=="Referral"~1,TRUE~0))%>%
    dplyr::mutate(filter_complex= dplyr::case_when(!is.na(diff_bet_treat) & diff_bet_treat<45 & as.character(motivoegreso_derivacion)=="Referral"~1,TRUE~0))%>%
    dplyr::group_by(hash_key)%>%
    dplyr::mutate(sum_validadores=sum(filter_complex))%>%
    dplyr::mutate(n_complex = str_count(filter_complex, '0'))%>%
    ungroup()%>%
    dplyr::mutate(cumsum_n_complex = cumsum(n_complex))%>%
    dplyr::group_by(hash_key)%>%
    dplyr::mutate(n_dist=n_distinct(cumsum_n_complex))%>%
    dplyr::filter(n_dist>3)%>%
    dplyr::select(hash_key,fech_ing,fech_egres_imp,motivodeegreso_mod_imp,diff_bet_treat,filter_complex,filter_complex_anterior,n_dist,cumsum_n_complex)%>%
    
    knitr::kable(format= "html", format.args= list(decimal.mark= ".", big.mark= ","),
                 caption="Table 3. Groups w/ more than 3 distinct groups of cases that fullfilled the conditions to categorize as continuous treatments by each user",
                 align= c("l",rep('c', 5)), col.names = c("User","Date of Admission","Date of Discharge", "Cause of Discharge", "Diff Between Treatments","<45 & Referral","<45 & Referral of Previous Treatment","No. groups within users","ID of groups"))%>%
    kableExtra::kable_styling(bootstrap_options = c("striped", "hover"),font_size= 8)%>%
    kableExtra::kable_styling(full_width = F)%>%
          kableExtra::add_footnote(paste0("Note= Cases with an entry that had a referral as a cause of discharge and >45 days (n= ", CONS_C1_JUN_2020_row_sig_row%>% nrow()%>% formatC(big.mark=","),")"), notation = "none")
Table 3. Groups w/ more than 3 distinct groups of cases that fullfilled the conditions to categorize as continuous treatments by each user
User Date of Admission Date of Discharge Cause of Discharge Diff Between Treatments <45 & Referral <45 & Referral of Previous Treatment No. groups within users ID of groups
0f4aa2f78fa5da961404e6e5389ad76c 2017-04-03 2017-04-08 Abandono Temprano 2 0 1 4 352
0f4aa2f78fa5da961404e6e5389ad76c 2017-01-31 2017-03-29 Derivación 5 1 0 4 352
0f4aa2f78fa5da961404e6e5389ad76c 2016-05-27 2016-08-12 Abandono Temprano 172 0 1 4 353
0f4aa2f78fa5da961404e6e5389ad76c 2015-10-19 2016-05-23 Derivación 4 1 0 4 353
0f4aa2f78fa5da961404e6e5389ad76c 2015-07-14 2015-10-16 Derivación 3 1 1 4 353
0f4aa2f78fa5da961404e6e5389ad76c 2014-07-23 2014-08-11 Abandono Temprano 337 0 1 4 354
0f4aa2f78fa5da961404e6e5389ad76c 2014-07-08 2014-07-21 Derivación 2 1 0 4 354
0f4aa2f78fa5da961404e6e5389ad76c 2014-06-05 2014-07-01 Alta Terapéutica 7 0 1 4 355
0f4aa2f78fa5da961404e6e5389ad76c 2013-11-04 2014-06-05 Derivación 0 1 0 4 355
1173f19959cadd5542a584ab94ca87b7 2017-11-22 2018-05-08 Alta Administrativa 155 0 1 4 418
1173f19959cadd5542a584ab94ca87b7 2017-07-10 2017-11-21 Derivación 1 1 0 4 418
1173f19959cadd5542a584ab94ca87b7 2014-07-07 2016-04-13 Alta Terapéutica 453 0 1 4 419
1173f19959cadd5542a584ab94ca87b7 2014-04-04 2014-07-07 Derivación 0 1 0 4 419
1173f19959cadd5542a584ab94ca87b7 2013-04-26 2013-08-01 Derivación 246 0 1 4 420
1173f19959cadd5542a584ab94ca87b7 2013-01-23 2013-04-01 Derivación 25 1 0 4 420
1173f19959cadd5542a584ab94ca87b7 2012-04-02 2013-01-21 Derivación 2 1 1 4 420
1173f19959cadd5542a584ab94ca87b7 2012-02-15 2012-04-02 Abandono Temprano 0 0 1 4 421
1173f19959cadd5542a584ab94ca87b7 2011-09-22 2012-02-13 Derivación 2 1 0 4 421
25c36b6820ac514094c458ba22918452 2017-08-02 2018-02-19 Alta Terapéutica 194 0 1 4 940
25c36b6820ac514094c458ba22918452 2017-05-03 2017-08-01 Derivación 1 1 0 4 940
25c36b6820ac514094c458ba22918452 2016-08-18 2017-04-28 Alta Terapéutica 5 0 1 4 941
25c36b6820ac514094c458ba22918452 2016-05-27 2016-07-19 Derivación 30 1 0 4 941
25c36b6820ac514094c458ba22918452 2016-03-04 2016-05-22 Abandono Temprano 5 0 1 4 942
25c36b6820ac514094c458ba22918452 2016-01-04 2016-03-03 Derivación 1 1 0 4 942
25c36b6820ac514094c458ba22918452 2015-09-24 2015-12-31 Derivación 4 1 1 4 942
25c36b6820ac514094c458ba22918452 2011-01-31 2011-12-30 Alta Administrativa 279 0 1 4 943
25c36b6820ac514094c458ba22918452 2010-08-20 2010-12-22 Derivación 40 1 0 4 943
c81df65dbf73521d91ff7c65a3c7ceba 2015-04-13 2015-06-01 Abandono Temprano 36 0 1 4 4,783
c81df65dbf73521d91ff7c65a3c7ceba 2014-06-30 2015-04-07 Derivación 6 1 0 4 4,783
c81df65dbf73521d91ff7c65a3c7ceba 2013-12-17 2014-03-01 Abandono Temprano 80 0 1 4 4,784
c81df65dbf73521d91ff7c65a3c7ceba 2013-08-26 2013-12-17 Derivación 0 1 0 4 4,784
c81df65dbf73521d91ff7c65a3c7ceba 2013-03-22 2013-08-01 Abandono Tardio 25 0 1 4 4,785
c81df65dbf73521d91ff7c65a3c7ceba 2013-01-02 2013-03-11 Derivación 11 1 0 4 4,785
c81df65dbf73521d91ff7c65a3c7ceba 2012-08-20 2012-09-10 Abandono Temprano 114 0 1 4 4,786
c81df65dbf73521d91ff7c65a3c7ceba 2012-07-02 2012-08-18 Derivación 2 1 0 4 4,786
d375edb930e2d3f4517f2307200b1cf2 2019-09-03 NA NA NA 0 1 4 5,044
d375edb930e2d3f4517f2307200b1cf2 2019-07-15 2019-08-09 Derivación 25 1 0 4 5,044
d375edb930e2d3f4517f2307200b1cf2 2019-03-05 2019-03-29 Derivación 108 0 1 4 5,045
d375edb930e2d3f4517f2307200b1cf2 2018-12-27 2019-03-01 Derivación 4 1 0 4 5,045
d375edb930e2d3f4517f2307200b1cf2 2017-11-28 2018-01-08 Derivación 353 0 1 4 5,046
d375edb930e2d3f4517f2307200b1cf2 2017-04-17 2017-11-27 Derivación 1 1 0 4 5,046
d375edb930e2d3f4517f2307200b1cf2 2013-09-24 2013-10-18 Abandono Temprano 648 0 1 4 5,047
d375edb930e2d3f4517f2307200b1cf2 2013-06-13 2013-08-30 Derivación 25 1 0 4 5,047
e81d886539caa4e9b2527984cacd7ec0 2018-02-08 2018-04-09 Derivación NA 0 1 4 5,549
e81d886539caa4e9b2527984cacd7ec0 2017-10-10 2018-02-01 Derivación 7 1 0 4 5,549
e81d886539caa4e9b2527984cacd7ec0 2016-08-16 2017-01-01 Abandono Tardio 282 0 1 4 5,550
e81d886539caa4e9b2527984cacd7ec0 2016-03-14 2016-08-10 Derivación 6 1 0 4 5,550
e81d886539caa4e9b2527984cacd7ec0 2016-01-19 2016-03-10 Derivación 4 1 1 4 5,550
e81d886539caa4e9b2527984cacd7ec0 2015-02-24 2015-06-02 Alta Terapéutica 231 0 1 4 5,551
e81d886539caa4e9b2527984cacd7ec0 2015-01-12 2015-02-23 Derivación 1 1 0 4 5,551
e81d886539caa4e9b2527984cacd7ec0 2013-11-28 2014-03-13 Derivación 305 0 1 4 5,552
e81d886539caa4e9b2527984cacd7ec0 2013-10-02 2013-11-22 Derivación 6 1 0 4 5,552
fba24f5affb5795f58a61bed2019722a 2015-11-02 2016-05-02 Alta Administrativa NA 0 1 4 6,025
fba24f5affb5795f58a61bed2019722a 2015-07-01 2015-11-01 Derivación 1 1 0 4 6,025
fba24f5affb5795f58a61bed2019722a 2014-07-23 2015-07-01 Derivación 0 1 1 4 6,025
fba24f5affb5795f58a61bed2019722a 2013-10-21 2014-01-30 Derivación 67 0 1 4 6,026
fba24f5affb5795f58a61bed2019722a 2013-07-30 2013-10-18 Derivación 3 1 0 4 6,026
fba24f5affb5795f58a61bed2019722a 2013-04-09 2013-07-29 Alta Administrativa 1 0 1 4 6,027
fba24f5affb5795f58a61bed2019722a 2012-07-04 2013-04-09 Derivación 0 1 0 4 6,027
fba24f5affb5795f58a61bed2019722a 2012-05-01 2012-07-02 Derivación 2 1 1 4 6,027
fba24f5affb5795f58a61bed2019722a 2012-02-08 2012-02-24 Abandono Temprano 67 0 1 4 6,028
fba24f5affb5795f58a61bed2019722a 2011-07-14 2012-01-31 Derivación 8 1 0 4 6,028
Note= Cases with an entry that had a referral as a cause of discharge and >45 days (n= 6,809)
  #%>%
  #  kableExtra::scroll_box(width= "100%", height = "30%")


We applied these criteria to all of the entries that shared common records that could be considered as a part of a continuous treatment.


In case of variables such as the primary substance and other substances and educational attainment, we ordered this variables in terms of vulnerability, and replaced variables but giving priority to more vulnerable categories. For variables in which there were not a clear hierarchy to identify the more vulnerable category, we selected the values present in the entries in which the treatments lasted longer than the rest. In case of keeping values of days with the more than one maximum amount of days of treatment up to the date of retrieval, the rank took one of the corresponding rows randomly.


In case of the variable related to the type of plan, we left two variables, specifying the last plan and another specifying the plan of the larger entry.


In case of other substances at admission, we generated three variables (otras_sus1_mod,otras_sus2_mod, and otras_sus3_mod) that selected only the variables related to the main substances.


invisible(c("OJO PUSE EVAL=F"))
invisible(c("4.ejemplos de casos con trat continuos distintos"))
   # dplyr::filter(sum_validadores>1) #ffd3f4ed5841cfac947ce546757b8e3f, es un caso que tiene un par de días que se podrían colapsar: fech egres 2014-11-27 y después ingresa en 2015-03-27 // lo mismo con 015ea90c1b1655155f30a3e276436ed5 en 2009-09-25 a 2012-02-29 y después 2018-07-03 al 2019-08-30
#12,945, posiblemente hay otros pares que se superponen 
invisible(c("5. Hay casos que tienen hasta 7 tratamientos continuos ¿?, raro- lo vi y corresponde"))
#dd0d42261d00273d4e19ff2a46bda4b9_5276 dd0d42261d00273d4e19ff2a46bda4b9, pueden existir hasta 7 trat continuos ¿?

CONS_C1_df_dup_JUN_2020%>%
#FILTRAR VARIABLES
#_#_#_#_#_#_#_
    dplyr::filter(row %in% unlist(c(CONS_C1_JUN_2020_row_sig_row$row,CONS_C1_JUN_2020_row_sig_row$sig_row)))%>%
    dplyr::arrange(hash_key,desc(fech_ing))%>%
    dplyr::mutate(filter_complex_anterior= dplyr::case_when(!is.na(lag(diff_bet_treat)) & lag(diff_bet_treat)<45 & as.character(lag(motivoegreso_derivacion))=="Referral"~1,TRUE~0))%>%
    dplyr::mutate(filter_complex= dplyr::case_when(!is.na(diff_bet_treat) & diff_bet_treat<45 & as.character(motivoegreso_derivacion)=="Referral"~1,TRUE~0))%>%
    dplyr::group_by(hash_key)%>%
    dplyr::mutate(sum_validadores=sum(filter_complex))%>%
    dplyr::mutate(n_complex = str_count(filter_complex, '0'))%>%
    ungroup()%>%
    dplyr::mutate(cumsum_n_complex = cumsum(n_complex))%>%
    dplyr::mutate(concat_hash_id_treatments=paste0(hash_key,"_",cumsum_n_complex))%>%
    dplyr::group_by(concat_hash_id_treatments)%>%
    dplyr::mutate(rn_common_treats=row_number())%>% 
    dplyr::mutate(rn_common_treats2=row_number())%>% 
    ungroup()%>%
    dplyr::mutate(tipo_de_plan_2_for_f=tipo_de_plan_2)%>%
    dplyr::mutate(mod_0_row=row)%>%
#_#_#_#_#_#_#_#_#_#_
#a
#_#_#_#_#_#_#_#_#_#_
    #dplyr::filter(hash_key=="dd0d42261d00273d4e19ff2a46bda4b9")%>% dplyr::select(row,hash_key, concat_hash_id_treatments, fech_ing, fech_egres_imp, diff_bet_treat)%>% View()
##IMPORTANTE: PARA VER TIPOS DISTINTOS
    #dplyr::mutate(n_dist=n_distinct(cumsum_n_complex))%>%
    #dplyr::filter(n_dist>3)%>%
    #dplyr::select(hash_key,fech_ing,fech_egres_imp,motivodeegreso_mod_imp,diff_bet_treat,filter_complex,filter_complex_anterior,n_dist,cumsum_n_complex)%>%
                tidyr::pivot_wider(names_from =  rn_common_treats, 
                                   names_sep="_",
                                   values_from = c(row, tipo_centro, servicio_de_salud, senda,id_centro, tipo_de_plan_2))%>%
   dplyr::group_by(concat_hash_id_treatments)%>%
   dplyr::mutate_at(vars(row_1:tipo_de_plan_2_7),~max(as.character(.),na.rm=T))%>%
   dplyr::ungroup()%>%
   unite(., col = "mod_a_row",  row_1:row_7, na.rm=TRUE, sep = "; ")%>%
   unite(., col = "mod_a_tipo_centro",  tipo_centro_1:tipo_centro_7, na.rm=TRUE, sep = "; ")%>%
   unite(., col = "mod_a_servicio_de_salud",  servicio_de_salud_1:servicio_de_salud_7, na.rm=TRUE, sep = "; ")%>%
   unite(., col = "mod_a_senda",  senda_1:senda_7, na.rm=TRUE, sep = "; ")%>%
   unite(., col = "mod_a_id_centro",  id_centro_1:id_centro_7, na.rm=TRUE, sep = "; ")%>%
   unite(., col = "mod_a_tipo_de_plan_2",  tipo_de_plan_2_1:tipo_de_plan_2_7, na.rm=TRUE, sep = "; ")%>%
   dplyr::mutate(mod_b_tipo_de_plan_2=sub(".*\\;","",mod_a_tipo_de_plan_2))%>% #ultimos tratamiento
  dplyr::mutate(mod_b_id_centro=sub(".*\\;","",mod_a_id_centro))%>% #ultimos tratamiento
#_#_#_#_#_#_#_#_#_#_
#b
#_#_#_#_#_#_#_#_#_#_
   dplyr::group_by(concat_hash_id_treatments)%>%
   dplyr::mutate(n_concat_hash_id_treatments=n())%>%
  dplyr::mutate(fech_egres_imp=as.character(fech_egres_imp))%>%
  dplyr::mutate(fech_egres_imp=ifelse(n_concat_hash_id_treatments==1 & is.na(fech_egres_imp),"2019-11-13",fech_egres_imp))%>%
  dplyr::mutate(motivodeegreso_mod_imp=ifelse(n_concat_hash_id_treatments==1 & is.na(motivodeegreso_mod_imp),"En curso",as.character(motivodeegreso_mod_imp)))%>%
  dplyr::mutate(across(c(numero_de_hijos, num_hijos_ing_trat_res, fech_egres_imp, motivodeegreso_mod_imp, macrozona, nombre_region, nombre_centro, comuna_residencia_cod,identidad_de_genero,tipo_centro_derivacion),~dplyr::first(na.omit(.)),.names = "mod_b_{col}"))%>%
  #dplyr::select(hash_key,concat_hash_id_treatments,  n_concat_hash_id_treatments,numero_de_hijos, num_hijos_ing_trat_res, fech_egres_imp, motivodeegreso_mod_imp, macrozona, nombre_region, comuna_residencia_cod,identidad_de_genero,starts_with("mod_"))%>%dplyr::filter(concat_hash_id_treatments=="dd0d42261d00273d4e19ff2a46bda4b9_5276"|hash_key=="015ea90c1b1655155f30a3e276436ed5"|hash_key=="ffd3f4ed5841cfac947ce546757b8e3f")%>%
   #dplyr::filter(hash_key=="ffd3f4ed5841cfac947ce546757b8e3f")%>%View() #CASOS CON 2 TRATAMIENTOS, EFECTIVAMENTE SON RELLENADOS.
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
#c
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
  dplyr::ungroup()%>%
  dplyr::mutate(fech_ing=as.character(fech_ing))%>%
  dplyr::group_by(concat_hash_id_treatments)%>%
  dplyr::mutate(across(c(fech_ing, fecha_ingreso_a_convenio_senda, edad_al_ing, origen_ingreso_mod, edad_al_ing_grupos),~dplyr::last(na.omit(.)),.names = "mod_c_{col}"))%>%
  dplyr::ungroup()%>%
  assign("CONS_C1_df_dup_JUN_2020_a_c",., envir = .GlobalEnv)
    #dplyr::select(hash_key,concat_hash_id_treatments,  n_concat_hash_id_treatments,fech_ing, fecha_ingreso_a_convenio_senda, edad_al_ing, origen_ingreso_mod, edad_al_ing_grupos, starts_with("mod_"))%>%dplyr::filter(concat_hash_id_treatments=="dd0d42261d00273d4e19ff2a46bda4b9_5276"|hash_key=="015ea90c1b1655155f30a3e276436ed5"|hash_key=="ffd3f4ed5841cfac947ce546757b8e3f")%>%View()

#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
#d     #Primero ordenar por vulnerabilidad, luego hacer la selección
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
  
CONS_C1_df_dup_JUN_2020_a_c%>%
  dplyr::mutate(compromiso_biopsicosocial=dplyr::case_when(compromiso_biopsicosocial=="Leve"~1,compromiso_biopsicosocial=="Moderado"~2,compromiso_biopsicosocial=="Severo"~3,TRUE~NA_real_))%>%
  dplyr::mutate(escolaridad=dplyr::case_when(escolaridad=="Mayor a Ed Secundaria"~1,escolaridad=="Ed Secundaria Completa o Menor"~2,escolaridad=="Ed Primaria Completa o Menor"~3,TRUE~NA_real_))%>%
  dplyr::mutate(across(c(dg_global_nec_int_soc_or, dg_nec_int_soc_cap_hum_or, dg_nec_int_soc_cap_fis_or, dg_nec_int_soc_cap_soc_or,dg_global_nec_int_soc_or_1, dg_nec_int_soc_cap_hum_or_1, dg_nec_int_soc_cap_fis_or_1,dg_nec_int_soc_cap_soc_or_1),~dplyr::case_when(as.character(.)=="Bajas"~3,as.character(.)=="Medias"~2,as.character(.)=="Altas"~1,TRUE~NA_real_)))%>%
  dplyr::mutate(across(c(evaluacindelprocesoteraputico, eva_consumo, eva_fam, eva_relinterp, eva_ocupacion, eva_sm, eva_fisica, eva_transgnorma),~dplyr::case_when(as.character(.)=="Logro Mínimo"~3,as.character(.)=="Logro M?mo"~3,as.character(.)=="Logro Intermedio"~2,as.character(.)=="Logro Alto"~1,TRUE~NA_real_)))%>% 
 #dplyr::select(hash_key,concat_hash_id_treatments, n_concat_hash_id_treatments,compromiso_biopsicosocial,escolaridad,dg_global_nec_int_soc_or, dg_nec_int_soc_cap_hum_or, dg_nec_int_soc_cap_fis_or, dg_nec_int_soc_cap_soc_or,dg_global_nec_int_soc_or_1, dg_nec_int_soc_cap_hum_or_1, dg_nec_int_soc_cap_fis_or_1, dg_nec_int_soc_cap_soc_or_1,evaluacindelprocesoteraputico, eva_consumo, eva_fam, eva_relinterp, eva_ocupacion, eva_sm, eva_fisica, eva_transgnorma,starts_with("mod_"))%>%dplyr::filter(concat_hash_id_treatments=="dd0d42261d00273d4e19ff2a46bda4b9_5276"|hash_key=="015ea90c1b1655155f30a3e276436ed5"|hash_key=="ffd3f4ed5841cfac947ce546757b8e3f")%>% 

  dplyr::group_by(concat_hash_id_treatments)%>%
  
      dplyr::mutate(across(c(compromiso_biopsicosocial,escolaridad,dg_global_nec_int_soc_or, dg_nec_int_soc_cap_hum_or, dg_nec_int_soc_cap_fis_or, dg_nec_int_soc_cap_soc_or,dg_global_nec_int_soc_or_1, dg_nec_int_soc_cap_hum_or_1, dg_nec_int_soc_cap_fis_or_1, dg_nec_int_soc_cap_soc_or_1,evaluacindelprocesoteraputico, eva_consumo, eva_fam, eva_relinterp, eva_ocupacion, eva_sm, eva_fisica, eva_transgnorma),~max(.,na.rm=T),.names = "mod_d_{col}"))%>%
    
      dplyr::mutate(tiene_menores_de_edad_a_cargo_n=ifelse(as.character(tiene_menores_de_edad_a_cargo)=="si",1,0),tiene_menores_de_edad_a_cargo_n=sum(tiene_menores_de_edad_a_cargo_n,na.rm=T),mod_d_tiene_menores_de_edad_a_cargo=ifelse(mod_b_numero_de_hijos>0 & tiene_menores_de_edad_a_cargo_n>0,"si","no"))%>%
      
      dplyr::mutate(x_se_trata_mujer_emb_n=ifelse(as.character(x_se_trata_mujer_emb)=="Si",1,0),x_se_trata_mujer_emb_n=sum(x_se_trata_mujer_emb_n,na.rm=T),mod_d_x_se_trata_mujer_emb=ifelse(x_se_trata_mujer_emb_n>0,"Si","No"))%>%
      
      dplyr::mutate(usuario_tribunal_trat_droga_n=ifelse(as.character(usuario_tribunal_trat_droga)=="Si",1,0),usuario_tribunal_trat_droga_n=sum(usuario_tribunal_trat_droga_n,na.rm=T),mod_d_usuario_tribunal_trat_droga=ifelse(usuario_tribunal_trat_droga_n>0,"Si","No"))%>%
      
      dplyr::mutate(discapacidad_n=ifelse(as.character(discapacidad)=="si",1,0),discapacidad_n=sum(discapacidad_n,na.rm=T),mod_d_discapacidad=ifelse(discapacidad_n>0,"si","no"))%>%
      dplyr::mutate(ha_estado_embarazada_egreso_n=ifelse(as.character(ha_estado_embarazada_egreso)=="si",1,0),ha_estado_embarazada_egreso_n=sum(ha_estado_embarazada_egreso_n,na.rm=T),mod_d_ha_estado_embarazada_egreso=ifelse(ha_estado_embarazada_egreso_n>0,"si","no"))%>%
      dplyr::mutate(dg_trs_cons_sus_or_n=ifelse(as.character(dg_trs_cons_sus_or)=="Dependencia",1,0),dg_trs_cons_sus_or_n=sum(dg_trs_cons_sus_or_n,na.rm=T),mod_d_dg_trs_cons_sus_or=ifelse(dg_trs_cons_sus_or_n>0,"Dependencia","Consumo Perjudicial"))%>%
      dplyr::mutate(mod_d_opcion_discapacidad=max(as.character(opcion_discapacidad),na.rm=T))%>%
  dplyr::ungroup()%>%
 # dplyr::select(hash_key,concat_hash_id_treatments, n_concat_hash_id_treatments,compromiso_biopsicosocial,escolaridad,dg_global_nec_int_soc_or, dg_nec_int_soc_cap_hum_or, dg_nec_int_soc_cap_fis_or, dg_nec_int_soc_cap_soc_or,dg_global_nec_int_soc_or_1, dg_nec_int_soc_cap_hum_or_1, dg_nec_int_soc_cap_fis_or_1, dg_nec_int_soc_cap_soc_or_1,evaluacindelprocesoteraputico, eva_consumo, eva_fam, eva_relinterp, eva_ocupacion, eva_sm, eva_fisica, eva_transgnorma,tiene_menores_de_edad_a_cargo,x_se_trata_mujer_emb,usuario_tribunal_trat_droga,discapacidad,ha_estado_embarazada_egreso,starts_with("mod_d_"))%>%dplyr::filter(concat_hash_id_treatments=="dd0d42261d00273d4e19ff2a46bda4b9_5276"|hash_key=="015ea90c1b1655155f30a3e276436ed5"|hash_key=="ffd3f4ed5841cfac947ce546757b8e3f")%>% 

assign("CONS_C1_df_dup_JUN_2020_a_d",., envir = .GlobalEnv)

#¿qué pasa con opción discapacidad?
#CONS_C1_df_dup_JUN_2020_a_d%>% janitor::tabyl(mod_d_discapacidad, opcion_discapacidad)
#CONS_C1_df_dup_JUN_2020_a_d%>% dplyr::select(mod_0_row,concat_hash_id_treatments,mod_d_discapacidad, opcion_discapacidad)%>% dplyr::filter(mod_d_discapacidad=="si")%>% View()

#dg_trs_cons_sus_or

#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
#e     #mantener- agregar hash_key
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_      

invisible(c("hash_key","id","hash_rut_completo","nacionalidad","sexo_2","embarazo","id_mod","obs","fech_nac","edad_ini_cons","edad_ini_sus_prin","sus_ini","estado_conyugal_2","edad_grupos","freq_cons_sus_prin","via_adm_sus_prin_act","etnia_cor","nacionalidad_2","etnia_cor_2","sus_ini_2","sus_ini_3","sus_ini_mod","obs_cambios","obs_cambios_ninguno","obs_cambios_num","obs_cambios_fac","at_least_one_cont_entry"))

CONS_C1_df_dup_JUN_2020_a_d%>%
  dplyr::mutate(across(c(hash_key,id,hash_rut_completo,nacionalidad,sexo_2,embarazo,id_mod,obs,fech_nac,edad_ini_cons,edad_ini_sus_prin,sus_ini,estado_conyugal_2,edad_grupos,freq_cons_sus_prin,via_adm_sus_prin_act,etnia_cor,nacionalidad_2,etnia_cor_2,sus_ini_2,sus_ini_3,sus_ini_mod,obs_cambios,obs_cambios_ninguno,obs_cambios_num,obs_cambios_fac,at_least_one_cont_entry), ~ .,.names = "mod_e_{col}"))%>%
assign("CONS_C1_df_dup_JUN_2020_a_e",., envir = .GlobalEnv)

#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
#f     #Tratamiento más largo
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_      

invisible(c("acá no está clara la jerarquía en términos de vulnerabildiad. Un inactivo puede estar mejor que un desempleado, así como no; un asalariado"))

set.seed(1234) #para la resolución de empates
CONS_C1_df_dup_JUN_2020_a_e%>%
  dplyr::mutate(dias_trat_imp_op= ifelse(is.na(fech_egres_imp),as.integer(lubridate::time_length(difftime(as.Date("2019-11-13"),as.Date(as.character(fech_ing))),"days")),dias_trat_imp))%>%
  dplyr::mutate(across(c(otras_sus1, otras_sus2,otras_sus3),~dplyr::case_when(as.character(.)!="Alcohol"&as.character(.)!="Cocaína"&as.character(.)!="Marihuana"&as.character(.)!="Pasta Base"~"Otros",TRUE~as.character(.)),.names = "{col}_mod"))%>%
  dplyr::mutate(rn_total=row_number())%>%
  
  dplyr::group_by(concat_hash_id_treatments)%>%
#dplyr::mutate(n_days_op_max= max(dias_trat_imp_op,na.rm=T))%>%
  mutate(rank_dias_trat_op  = rank(-dias_trat_imp_op, ties.method = "random"))%>% #negative, descendant
  dplyr::arrange(concat_hash_id_treatments,rank_dias_trat_op)%>%
  dplyr::mutate(across(c(con_quien_vive,tipo_de_plan_2_for_f,tipo_de_programa_2,estatus_ocupacional,cat_ocupacional,origen_ingreso,tipo_de_vivienda_mod,tenencia_de_la_vivienda_mod,rubro_trabaja_mod,sus_principal_mod,otras_sus1_mod,otras_sus2_mod,otras_sus3_mod,via_adm_sus_prin), ~dplyr::first(na.omit(.)),.names = "mod_f_{col}"))%>%
  dplyr::ungroup()%>%
  #dplyr::rename("mod_f_tipo_de_plan_2_for_f"="mod_f_tipo_de_plan_2")%>%
  #dplyr::select(hash_key,concat_hash_id_treatments, n_concat_hash_id_treatments,con_quien_vive,tipo_de_plan_2_for_f,estatus_ocupacional,cat_ocupacional,origen_ingreso,tipo_de_vivienda_mod,tenencia_de_la_vivienda_mod,rubro_trabaja_mod,otras_sus1_mod,otras_sus2_mod,otras_sus3_mod,rank_dias_trat_op,dias_trat_imp_op,starts_with("mod_f_"))%>%dplyr::filter(concat_hash_id_treatments=="dd0d42261d00273d4e19ff2a46bda4b9_5276"|hash_key=="015ea90c1b1655155f30a3e276436ed5"|hash_key=="ffd3f4ed5841cfac947ce546757b8e3f")%>% 
  dplyr::arrange(rn_total)%>%
assign("CONS_C1_df_dup_JUN_2020_a_f",., envir = .GlobalEnv)

#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
#g- Replacedfavored dgs.-a     #Reemplazar si está presente
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_

invisible(c("acá no quiero captar progresion, sólo valores distintos"))
library(tidyverse)
toString2<-
function (x, width = NULL, ...) 
        {
            string <- paste(x, collapse = "; ")
            if (missing(width) || is.null(width) || width == 0) 
                return(string)
            if (width < 0) 
                stop("'width' must be positive")
            if (nchar(string, type = "w") > width) {
                width <- max(6, width)
                string <- paste0(strtrim(string, width - 4), "....")
            }
            string
        }

#para definir lo que privilegiaré
  dg_trs_psiq_dsm_iv_or_cat<-CONS_C1_df_dup_JUN_2020 %>% dplyr::mutate(dg_trs_psiq_dsm_iv_or=as.character(dg_trs_psiq_dsm_iv_or))%>% janitor::tabyl(dg_trs_psiq_dsm_iv_or)%>% data.frame()%>% select(dg_trs_psiq_dsm_iv_or)%>% dplyr::filter(!dg_trs_psiq_dsm_iv_or %in% c("En estudio","Sin trastorno", NA))%>% unlist()%>% as.character()                
  dg_trs_psiq_cie_10_or_cat<-CONS_C1_df_dup_JUN_2020 %>% dplyr::mutate(dg_trs_psiq_cie_10_or=as.character(dg_trs_psiq_cie_10_or))%>% janitor::tabyl(dg_trs_psiq_cie_10_or)%>% data.frame()%>% select(dg_trs_psiq_cie_10_or)%>% dplyr::filter(!dg_trs_psiq_cie_10_or %in% c("En estudio(NA)","Sin trastorno(NA)", NA))%>% unlist()%>% as.character() 
  dg_trs_psiq_sub_dsm_iv_or_cat<-CONS_C1_df_dup_JUN_2020 %>% dplyr::mutate(dg_trs_psiq_sub_dsm_iv_or=as.character(dg_trs_psiq_sub_dsm_iv_or))%>% janitor::tabyl(dg_trs_psiq_sub_dsm_iv_or)%>% data.frame()%>% select(dg_trs_psiq_sub_dsm_iv_or)%>% unlist()%>% as.character() 
  dg_trs_psiq_sub_cie_10_or_cat<-CONS_C1_df_dup_JUN_2020 %>% dplyr::mutate(dg_trs_psiq_sub_cie_10_or=as.character(dg_trs_psiq_sub_cie_10_or))%>% janitor::tabyl(dg_trs_psiq_sub_cie_10_or)%>% data.frame()%>% select(dg_trs_psiq_sub_cie_10_or)%>% dplyr::filter(!dg_trs_psiq_sub_cie_10_or %in% c(NA))%>% unlist()%>% as.character() 
  diagnostico_trs_fisico_cat<-CONS_C1_df_dup_JUN_2020 %>% dplyr::mutate(diagnostico_trs_fisico=as.character(diagnostico_trs_fisico))%>% janitor::tabyl(diagnostico_trs_fisico)%>% data.frame()%>% select(diagnostico_trs_fisico)%>% dplyr::filter(!diagnostico_trs_fisico %in% c("En estudio","Sin trastorno", NA))%>% unlist()%>% as.character() 
  otros_probl_at_sm_or_cat<-CONS_C1_df_dup_JUN_2020 %>% dplyr::mutate(otros_probl_at_sm_or=as.character(otros_probl_at_sm_or))%>% janitor::tabyl(otros_probl_at_sm_or)%>% data.frame()%>% select(otros_probl_at_sm_or)%>% dplyr::filter(!otros_probl_at_sm_or %in% c("Sin otros problemas de salud mental", NA))%>% unlist()%>% as.character() 

CONS_C1_df_dup_JUN_2020_a_f%>%
  dplyr::mutate(rn_common_treats=rn_common_treats2)%>%
  #dplyr::mutate(across(c(dg_trs_psiq_dsm_iv_or,x2_dg_trs_psiq_dsm_iv_or,x3_dg_trs_psiq_dsm_iv_or,dg_trs_psiq_cie_10_or,x2_dg_trs_psiq_cie_10_or,x3_dg_trs_psiq_cie_10_or,diagnostico_trs_fisico), ~replace_na(as.character(.), 0),.names = "{col}_mod"))%>%
    #dplyr::mutate(across(c(dg_trs_psiq_dsm_iv_or_mod,x2_dg_trs_psiq_dsm_iv_or_mod,x3_dg_trs_psiq_dsm_iv_or_mod,dg_trs_psiq_cie_10_or_mod,x2_dg_trs_psiq_cie_10_or_mod,x3_dg_trs_psiq_cie_10_or_mod,diagnostico_trs_fisico_mod), ~dplyr::case_when(grepl("En estudio",as.character(.))~1,grepl("Sin trastorno",as.character(.))~0,TRUE~2)))%>%
  dplyr::mutate(across(c(dg_trs_psiq_dsm_iv_or,dg_trs_psiq_sub_dsm_iv_or,x2_dg_trs_psiq_dsm_iv_or,x2_dg_trs_psiq_sub_dsm_iv_or,x3_dg_trs_psiq_dsm_iv_or,x3_dg_trs_psiq_sub_dsm_iv_or,dg_trs_psiq_cie_10_or,dg_trs_psiq_sub_cie_10_or,x2_dg_trs_psiq_cie_10_or,x2_dg_trs_psiq_sub_cie_10_or,x3_dg_trs_psiq_cie_10_or,x3_dg_trs_psiq_sub_cie_10_or,diagnostico_trs_fisico,otros_probl_at_sm_or),~stringr::str_trim(.)))%>%
                tidyr::pivot_wider(names_from =  rn_common_treats, 
                                   names_sep="_",
                                   values_from =
                                     c(dg_trs_psiq_dsm_iv_or,dg_trs_psiq_sub_dsm_iv_or,x2_dg_trs_psiq_dsm_iv_or,x2_dg_trs_psiq_sub_dsm_iv_or,x3_dg_trs_psiq_dsm_iv_or,x3_dg_trs_psiq_sub_dsm_iv_or,dg_trs_psiq_cie_10_or,dg_trs_psiq_sub_cie_10_or, x2_dg_trs_psiq_cie_10_or,x2_dg_trs_psiq_sub_cie_10_or,x3_dg_trs_psiq_cie_10_or,x3_dg_trs_psiq_sub_cie_10_or,diagnostico_trs_fisico,otros_probl_at_sm_or))%>%
  #c(dg_trs_psiq_dsm_iv_or_mod,x2_dg_trs_psiq_dsm_iv_or_mod,x3_dg_trs_psiq_dsm_iv_or_mod,dg_trs_psiq_cie_10_or_mod,x2_dg_trs_psiq_cie_10_or_mod,x3_dg_trs_psiq_cie_10_or_mod,diagnostico_trs_fisico_mod))%>%
    dplyr::group_by(concat_hash_id_treatments)%>%
    dplyr::mutate_at(vars(dg_trs_psiq_dsm_iv_or_1:otros_probl_at_sm_or_7),~max(as.character(.),na.rm=T))%>%
    #dplyr::mutate_at(vars(dg_trs_psiq_dsm_iv_or_mod_1:diagnostico_trs_fisico_mod_7),~max(as.numeric(.),na.rm=T))%>%
  dplyr::ungroup()%>%
    dplyr::mutate(mod_g_dg_trs_psiq_dsm_iv_or = pmap_chr(select(.,dg_trs_psiq_dsm_iv_or_1:dg_trs_psiq_dsm_iv_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_x2_dg_trs_psiq_dsm_iv_or = pmap_chr(select(.,x2_dg_trs_psiq_dsm_iv_or_1:x2_dg_trs_psiq_dsm_iv_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_x3_dg_trs_psiq_dsm_iv_or = pmap_chr(select(.,x3_dg_trs_psiq_dsm_iv_or_1:x3_dg_trs_psiq_dsm_iv_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_dg_trs_psiq_sub_dsm_iv_or = pmap_chr(select(.,dg_trs_psiq_sub_dsm_iv_or_1:dg_trs_psiq_sub_dsm_iv_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_x2_dg_trs_psiq_dsm_iv_or = pmap_chr(select(.,x2_dg_trs_psiq_dsm_iv_or_1:x2_dg_trs_psiq_dsm_iv_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_x2_dg_trs_psiq_sub_dsm_iv_or = pmap_chr(select(.,x2_dg_trs_psiq_sub_dsm_iv_or_1:x2_dg_trs_psiq_sub_dsm_iv_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_x3_dg_trs_psiq_dsm_iv_or = pmap_chr(select(.,x3_dg_trs_psiq_dsm_iv_or_1:x3_dg_trs_psiq_dsm_iv_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_x3_dg_trs_psiq_sub_dsm_iv_or = pmap_chr(select(.,x3_dg_trs_psiq_sub_dsm_iv_or_1:x3_dg_trs_psiq_sub_dsm_iv_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_dg_trs_psiq_cie_10_or = pmap_chr(select(.,dg_trs_psiq_cie_10_or_1:dg_trs_psiq_cie_10_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_dg_trs_psiq_sub_cie_10_or = pmap_chr(select(.,dg_trs_psiq_sub_cie_10_or_1:dg_trs_psiq_sub_cie_10_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_x2_dg_trs_psiq_cie_10_or = pmap_chr(select(.,x2_dg_trs_psiq_cie_10_or_1:x2_dg_trs_psiq_cie_10_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_x2_dg_trs_psiq_sub_cie_10_or = pmap_chr(select(.,x2_dg_trs_psiq_sub_cie_10_or_1:x2_dg_trs_psiq_sub_cie_10_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_x3_dg_trs_psiq_cie_10_or = pmap_chr(select(.,x3_dg_trs_psiq_cie_10_or_1:x3_dg_trs_psiq_cie_10_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_x3_dg_trs_psiq_sub_cie_10_or = pmap_chr(select(.,x3_dg_trs_psiq_sub_cie_10_or_1:x3_dg_trs_psiq_sub_cie_10_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_diagnostico_trs_fisico = pmap_chr(select(.,diagnostico_trs_fisico_1:diagnostico_trs_fisico_7), ~toString2(unique(na.omit(c(...))))))%>%
    dplyr::mutate(mod_g_otros_probl_at_sm_or = pmap_chr(select(.,otros_probl_at_sm_or_1:otros_probl_at_sm_or_7), ~toString2(unique(na.omit(c(...))))))%>%
    #plyr::ungroup()%>%
    #dplyr::mutate_all(vars(dg_trs_psiq_dsm_iv_or_mod_1:diagnostico_trs_fisico_mod_7)) %>    unite(., col = "mod_g_x2_dg_trs_psiq_dsm_iv_or_mod", x2_dg_trs_psiq_dsm_iv_or_mod_1:x2_dg_trs_psiq_dsm_iv_or_mod_7, na.rm=TRUE, sep = "; ")%>%
    #unite(., col = "mod_g_dg_trs_psiq_dsm_iv_or_mod", dg_trs_psiq_dsm_iv_or_mod_1:dg_trs_psiq_dsm_iv_or_mod_7, na.rm=TRUE, sep = "; ")%>%
    #unite(., col = "mod_g_x2_dg_trs_psiq_dsm_iv_or_mod", x2_dg_trs_psiq_dsm_iv_or_mod_1:x2_dg_trs_psiq_dsm_iv_or_mod_7, na.rm=TRUE, sep = "; ")%>%
    #unite(., col = "mod_g_x3_dg_trs_psiq_dsm_iv_or_mod", x3_dg_trs_psiq_dsm_iv_or_mod_1:x3_dg_trs_psiq_dsm_iv_or_mod_7, na.rm=TRUE, sep = "; ")%>%
    #unite(., col = "mod_g_dg_trs_psiq_cie_10_or_mod", dg_trs_psiq_cie_10_or_mod_1:dg_trs_psiq_cie_10_or_mod_7, na.rm=TRUE, sep = "; ")%>%
    #unite(., col = "mod_g_x2_dg_trs_psiq_cie_10_or_mod", x2_dg_trs_psiq_cie_10_or_mod_1:x2_dg_trs_psiq_cie_10_or_mod_7, na.rm=TRUE, sep = "; ")%>%
    #unite(., col = "mod_g_x3_dg_trs_psiq_cie_10_or_mod", x3_dg_trs_psiq_cie_10_or_mod_1:x3_dg_trs_psiq_cie_10_or_mod_7, na.rm=TRUE, sep = "; ")%>%
    #unite(., col = "mod_g_diagnostico_trs_fisico_mod", diagnostico_trs_fisico_mod_1:diagnostico_trs_fisico_mod_7, na.rm=TRUE, sep = "; ")%>%

  # dplyr::select(hash_key,concat_hash_id_treatments,n_concat_hash_id_treatments,dg_trs_psiq_dsm_iv_or,x2_dg_trs_psiq_dsm_iv_or,x3_dg_trs_psiq_dsm_iv_or,dg_trs_psiq_cie_10_or,x2_dg_trs_psiq_cie_10_or,x3_dg_trs_psiq_cie_10_or,diagnostico_trs_fisico,starts_with("mod_g_"))%>%dplyr::filter(concat_hash_id_treatments=="dd0d42261d00273d4e19ff2a46bda4b9_5276"|hash_key=="015ea90c1b1655155f30a3e276436ed5"|hash_key=="ffd3f4ed5841cfac947ce546757b8e3f")%>% 
dplyr::mutate(across(c(mod_g_dg_trs_psiq_dsm_iv_or,mod_g_x2_dg_trs_psiq_dsm_iv_or,mod_g_x3_dg_trs_psiq_dsm_iv_or),~dplyr::case_when(grepl(paste(dg_trs_psiq_dsm_iv_or_cat, collapse = "|"),.)~str_replace_all(., "En estudio|Sin trastorno", ""),grepl("En estudio",.)~str_replace_all(., "Sin trastorno", ""),TRUE~.)))%>%
  #nchar>18 nchar("Trastorno Adaptativo")==20  nchar("En estudio")
dplyr::mutate(across(c(mod_g_dg_trs_psiq_cie_10_or,mod_g_x2_dg_trs_psiq_cie_10_or,mod_g_x3_dg_trs_psiq_cie_10_or),~dplyr::case_when(grepl(paste(dg_trs_psiq_cie_10_or_cat, collapse = "|"),.)~str_replace_all(., "En estudio(NA)|Sin trastorno(NA)", ""),grepl("En estudio(NA)",.)~str_replace_all(., "Sin trastorno(NA)", ""),TRUE~.)))%>%
dplyr::mutate(across(c(mod_g_diagnostico_trs_fisico),~dplyr::case_when(grepl(paste(diagnostico_trs_fisico_cat, collapse = "|"),.)~str_replace_all(., "En estudio|Sin trastorno", ""),grepl("En estudio",.)~str_replace_all(., "Sin trastorno", ""),TRUE~.)))%>%  
  dplyr::mutate(across(c(mod_g_otros_probl_at_sm_or),~dplyr::case_when(grepl(paste(otros_probl_at_sm_or_cat, collapse = "|"),.)~str_replace_all(., "Sin otros problemas de salud mental", ""),TRUE~.)))%>%  

  dplyr::mutate(across(c(mod_g_dg_trs_psiq_dsm_iv_or,mod_g_x2_dg_trs_psiq_dsm_iv_or,mod_g_x3_dg_trs_psiq_dsm_iv_or,mod_g_dg_trs_psiq_cie_10_or,mod_g_x2_dg_trs_psiq_cie_10_or,mod_g_x3_dg_trs_psiq_cie_10_or,mod_g_diagnostico_trs_fisico,mod_g_otros_probl_at_sm_or),~sub("^; ; ", "", .)))%>%
  dplyr::mutate(across(c(mod_g_dg_trs_psiq_dsm_iv_or,mod_g_x2_dg_trs_psiq_dsm_iv_or,mod_g_x3_dg_trs_psiq_dsm_iv_or,mod_g_dg_trs_psiq_cie_10_or,mod_g_x2_dg_trs_psiq_cie_10_or,mod_g_x3_dg_trs_psiq_cie_10_or,mod_g_diagnostico_trs_fisico,mod_g_otros_probl_at_sm_or),~sub("^; ", "", .)))%>%
  dplyr::mutate(across(c(mod_g_dg_trs_psiq_dsm_iv_or,mod_g_x2_dg_trs_psiq_dsm_iv_or,mod_g_x3_dg_trs_psiq_dsm_iv_or,mod_g_dg_trs_psiq_cie_10_or,mod_g_x2_dg_trs_psiq_cie_10_or,mod_g_x3_dg_trs_psiq_cie_10_or,mod_g_diagnostico_trs_fisico,mod_g_otros_probl_at_sm_or),~sub("; ; $", "", .)))%>% 
  dplyr::mutate(across(c(mod_g_dg_trs_psiq_dsm_iv_or,mod_g_x2_dg_trs_psiq_dsm_iv_or,mod_g_x3_dg_trs_psiq_dsm_iv_or,mod_g_dg_trs_psiq_cie_10_or,mod_g_x2_dg_trs_psiq_cie_10_or,mod_g_x3_dg_trs_psiq_cie_10_or,mod_g_diagnostico_trs_fisico,mod_g_otros_probl_at_sm_or),~sub("; $", "", .)))%>% 
  dplyr::mutate(across(c(mod_g_dg_trs_psiq_dsm_iv_or,mod_g_x2_dg_trs_psiq_dsm_iv_or,mod_g_x3_dg_trs_psiq_dsm_iv_or,mod_g_dg_trs_psiq_cie_10_or,mod_g_x2_dg_trs_psiq_cie_10_or,mod_g_x3_dg_trs_psiq_cie_10_or,mod_g_diagnostico_trs_fisico,mod_g_otros_probl_at_sm_or),~sub("; ; ", "; ", .)))%>% 
   
   #dplyr::select(hash_key,concat_hash_id_treatments,n_concat_hash_id_treatments,starts_with("mod_g_"))%>%dplyr::filter(concat_hash_id_treatments=="dd0d42261d00273d4e19ff2a46bda4b9_5276"|hash_key=="015ea90c1b1655155f30a3e276436ed5"|hash_key=="ffd3f4ed5841cfac947ce546757b8e3f")%>%
  assign("CONS_C1_df_dup_JUN_2020_a_g",., envir = .GlobalEnv)

#CONS_C1_df_dup_JUN_2020_a_g%>% janitor::tabyl(mod_g_diagnostico_trs_fisico)
#CONS_C1_df_dup_JUN_2020_a_g%>% janitor::tabyl(otros_probl_at_sm_or)  

  #dg_trs_psiq_sub_dsm_iv_or_cat dg_trs_psiq_sub_cie_10_or_cat

#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
#h     #Sum values
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_

CONS_C1_df_dup_JUN_2020_a_g%>%
  dplyr::group_by(concat_hash_id_treatments)%>%
  dplyr::mutate(mod_h_dias_trat_imp_op=sum(dias_trat_imp_op,na.rm=T))%>%
  dplyr::mutate(mod_h_dias_trat_imp=sum(dias_trat_imp,na.rm=T))%>%
  dplyr::mutate(mod_h_dias_trat_inv=sum(dias_trat_inv,na.rm=T))%>%
  slice(1)%>%
  dplyr::ungroup()%>%
  #dplyr::select(hash_key,concat_hash_id_treatments,n_concat_hash_id_treatments,dias_trat_imp_op,dias_trat_imp,dias_trat_inv,starts_with("mod_h_"))%>%dplyr::filter(concat_hash_id_treatments=="dd0d42261d00273d4e19ff2a46bda4b9_5276"|hash_key=="015ea90c1b1655155f30a3e276436ed5"|hash_key=="ffd3f4ed5841cfac947ce546757b8e3f")%>%
  dplyr::select(concat_hash_id_treatments,rn_common_treats2,matches("^mod_[0abcdefgh]_"))%>%
  dplyr::rename("mod_tipo_de_plan_2_concat_a"="mod_a_tipo_de_plan_2")%>%
  dplyr::rename("mod_id_centro_concat_a"="mod_a_id_centro")%>%
  assign("CONS_C1_df_dup_JUN_2020_a_h",., envir = .GlobalEnv)
invisible(c("ANTES QUE TODO. Ver qué variables son susceptiblesde ser combinadas (ej., las a o b que dejan sólo un valor)"))

CONS_C1_df_dup_JUN_2020_a_h%>%
  dplyr::rename_at(.vars = vars(matches("^mod_[abcdefgh]_")),
            .funs = funs(sub("^mod_[abcdefgh]_", "", .)))%>%
  dplyr::mutate(tipo_de_plan_2=stringr::str_trim(tipo_de_plan_2))%>%
  dplyr::mutate(id_centro=stringr::str_trim(id_centro))%>%
  dplyr::select(mod_0_row,concat_hash_id_treatments,everything())%>%
  assign("CONS_C1_df_dup_JUN_2020_cont_treats",., envir = .GlobalEnv)
 #id_centro tipo_de_plan_2
#  dplyr::mutate(motivodeegreso_mod_imp_tidy= case_when(!is.na(diff_bet_treat) & as.character(motivodeegreso_mod_imp)=="Derivación" & grepl("Clínica",tipo_centro_derivacion==<90~"Abandono Temprano" , TRUE~as.character(motivodeegreso_mod_imp))%>% nrow()

#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
#DESCARTAR CASOS REDUNDANTES
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
row_id_redundantes_trat_completos<-
      CONS_C1_df_dup_JUN_2020_a_g%>%
          dplyr::filter(!mod_0_row %in% unlist(CONS_C1_df_dup_JUN_2020_a_h$mod_0_row))%>%
          dplyr::select(mod_0_row)%>%unlist()%>%as.numeric()
#CONS_C1_df_dup_JUN_2020_a_h%>%select(matches("^mod_[b]_"))%>% names()%>% data.frame()%>% copiar_nombres()
#sus_principal_mod


We started wtih 12,945 entries of 5,767 users that it would be appropriate to distinguish 6,136 groups of entries comprising single treatments.


Join with the main dataset


We had to join the new entries of treatments into the original database (n= 117,212; users= 85,603), into a new one that collapsed continuous entries into single treatments (n= 110,403;users= 85,603).


#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
#CONS_C1_df_dup_JUN_2020_a_h
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_

#llego a 110,403 entradas

CONS_C1_df_dup_JUN_2020%>%
#FILTRAR ENTRADAS REDUNDANTES
#_#_#_#_#_#_#_
    dplyr::filter(!row %in%row_id_redundantes_trat_completos)%>%
#_#_#_#_#_#_
  dplyr::mutate(across(c(otras_sus1, otras_sus2,otras_sus3),~dplyr::case_when(as.character(.)!="Alcohol"&as.character(.)!="Cocaína"&as.character(.)!="Marihuana"&as.character(.)!="Pasta Base"~"Otros",TRUE~as.character(.)),.names = "{col}_mod"))%>%
  dplyr::mutate(fech_ing=as.character(fech_ing))%>%
  dplyr::mutate(fech_egres_imp=as.character(fech_egres_imp))%>%
    dplyr::mutate(fech_egres_imp=ifelse(n_concat_hash_id_treatments==1 & is.na(fech_egres_imp),"2019-11-13",fech_egres_imp))%>%
    dplyr::mutate(motivodeegreso_mod_imp=ifelse(n_concat_hash_id_treatments==1 & is.na(motivodeegreso_mod_imp),"En curso",as.character(motivodeegreso_mod_imp)))%>%
    dplyr::mutate(dias_trat_imp_op= ifelse(is.na(fech_egres_imp),as.integer(lubridate::time_length(difftime(as.Date("2019-11-13"),as.Date(as.character(fech_ing))),"days")),dias_trat_imp))%>%
      dplyr::mutate(compromiso_biopsicosocial=dplyr::case_when(compromiso_biopsicosocial=="Leve"~1,compromiso_biopsicosocial=="Moderado"~2,compromiso_biopsicosocial=="Severo"~3,TRUE~NA_real_))%>%
    dplyr::mutate(escolaridad=dplyr::case_when(escolaridad=="Mayor a Ed Secundaria"~1,escolaridad=="Ed Secundaria Completa o Menor"~2,escolaridad=="Ed Primaria Completa o Menor"~3,TRUE~NA_real_))%>%
    dplyr::mutate(across(c(dg_global_nec_int_soc_or, dg_nec_int_soc_cap_hum_or, dg_nec_int_soc_cap_fis_or, dg_nec_int_soc_cap_soc_or,dg_global_nec_int_soc_or_1, dg_nec_int_soc_cap_hum_or_1, dg_nec_int_soc_cap_fis_or_1,dg_nec_int_soc_cap_soc_or_1),~dplyr::case_when(as.character(.)=="Bajas"~3,as.character(.)=="Medias"~2,as.character(.)=="Altas"~1,TRUE~NA_real_)))%>%
    dplyr::mutate(across(c(evaluacindelprocesoteraputico, eva_consumo, eva_fam, eva_relinterp, eva_ocupacion, eva_sm, eva_fisica, eva_transgnorma),~dplyr::case_when(as.character(.)=="Logro Mínimo"~3,as.character(.)=="Logro M?mo"~3,as.character(.)=="Logro Intermedio"~2,as.character(.)=="Logro Alto"~1,TRUE~NA_real_)))%>%

  
  
 dplyr::mutate(across(c(dg_trs_psiq_dsm_iv_or,dg_trs_psiq_sub_dsm_iv_or,x2_dg_trs_psiq_dsm_iv_or,x2_dg_trs_psiq_sub_dsm_iv_or,x3_dg_trs_psiq_dsm_iv_or,x3_dg_trs_psiq_sub_dsm_iv_or,dg_trs_psiq_cie_10_or,dg_trs_psiq_sub_cie_10_or,x2_dg_trs_psiq_cie_10_or,x2_dg_trs_psiq_sub_cie_10_or,x3_dg_trs_psiq_cie_10_or,x3_dg_trs_psiq_sub_cie_10_or,diagnostico_trs_fisico,otros_probl_at_sm_or),~stringr::str_trim(.)))%>%

#_#_#_#_#_#_
#Tipo de Programa
#_#_#_#_#_#_

  dplyr::mutate(sexo_2.2=as.character(sexo_2.2))%>%
  dplyr::mutate(sexo_2.1 = case_when(as.character(tipo_de_programa_2.1)=="Programa Específico Mujeres" ~ "Mujer",
                                     as.character(x_se_trata_mujer_emb.1)=="Si"  ~ "Mujer",
                                     as.character(ha_estado_embarazada_egreso.1)=="Si" ~ "Mujer",
                                     as.character(tipo_de_programa_2.2)=="Programa Específico Mujeres" ~ "Mujer",
                                     as.character(x_se_trata_mujer_emb.2)=="Si"  ~ "Mujer",
                                     as.character(ha_estado_embarazada_egreso.2)=="Si" ~ "Mujer",
                                     TRUE ~ as.character(sexo_2.1))) %>%
  dplyr::mutate(sexo_2.2 = case_when(as.character(tipo_de_programa_2.1)=="Programa Específico Mujeres" ~ "Mujer",
                                     as.character(x_se_trata_mujer_emb.1)=="Si"  ~ "Mujer",
                                     as.character(ha_estado_embarazada_egreso.1)=="Si" ~ "Mujer",
                                     as.character(tipo_de_programa_2.2)=="Programa Específico Mujeres" ~ "Mujer",
                                     as.character(x_se_trata_mujer_emb.2)=="Si"  ~ "Mujer",
                                     as.character(ha_estado_embarazada_egreso.2)=="Si" ~ "Mujer",

  factor(mydata$v1,
levels = c(1,2,3),
labels = c("red", "blue", "green")                                     

##EJEMPLOS PARA VER DISTRIBUCION DE VARIABLES
                #CONS_C1_df_dup_JUN_2020%>% dplyr::filter(row%in%unlist(c(CONS_C1_JUN_2020_row_sig_row$row,CONS_C1_JUN_2020_row_sig_row$sig_row)))%>%janitor::tabyl(tiene_menores_de_edad_a_cargo)
                #CONS_C1_df_dup_JUN_2020%>% janitor::tabyl(evaluacindelprocesoteraputico)  

invisible(c("6. Estandarizar las fechas de ingreso y egreso al final"))
invisible(c("7. Dejar estos y sacar el prefijo mod"))
invisible(c("8. bind con la base de datos original sin las filas de CONS_C1_JUN_2020_row_sig_row"))
invisible(c("9. Este bind deberá tener en cuenta que hay variables q están numerizadas, otras se resumieron como otras_sus_1, o etc"))
invisible(c("10. Extender validación de tiene_menores_de_edad_a_cargo si tiene hijos"))
invisible(c("11. Extender validación y ordenación de variables como dg_nec_ y eva_ evaluacindelprocesoteraputico"))
invisible(c("12. Hacer variable tipo de programa 2, en base a los planes"))
invisible(c("13. Validar otras sustancias para que no repitan la misma información del otras sus anterior"))
invisible(c("14. Validar opcion_discapacidad en función de discapacidad"))
invisible(c("15. Ver factores"))

invisible(c("16. Podría traerme por ej, opcion_discapacidad, en el caso que lo haya mencionado la persona, de una base anterior"))

Consolidation of the dataset and its variables

  metadata(CONS_C1_df_dup_JUL_2020)$name <- "Agreement 1 SENDA"
  metadata(CONS_C1_df_dup_JUL_2020)$description <- "Information About Agreement 1 of SENDA and MINSAL"

#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_
CONS_C1_df_dup_JUL_2020<-
 CONS_C1_df_dup_JUL_2020 %>% dplyr::mutate(dg_trs_psiq_cie_10_or= recode(as.character(dg_trs_psiq_cie_10_or),
                                           'En estudio' ='En estudio(NA)',
                                           'Esquizofrenia, trastorno esquizotípico y trastornos de ideas delirantes' ='Esquizofrenia, trastorno esquizotípico y trastornos de ideas delirantes(F20-29)',
                                           'Retraso Mental' ='Retraso Mental(F70-79)',
                                           'Sin trastorno' ='Sin trastorno(NA)',
                                           'Trastornos de la conducta alimentaria ' ='Trastornos de la conducta alimentaria(F50)',
                                           'Trastornos de la personalidad y del comportamiento del adulto' ='Trastornos de la personalidad y del comportamiento del adulto(F60-69)',
                                           'Trastornos de los hábitos y del control de los impulsos' ='Trastornos de los hábitos y del control de los impulsos(F63)',
                                           'Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos' ='Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos(F50-59)',
                                           'Trastornos del Desarrollo Psicológico' ='Trastornos del Desarrollo Psicológico(F80-89)',
                                           'Trastornos del humor (afectivos).' ='Trastornos del humor (afectivos) (F30-39)',
                                           'Trastornos mentales orgánicos, incluidos los sintomáticos' ='Trastornos mentales orgánicos, incluidos los sintomáticos(F00-09)',
                                           'Trastornos neuróticos, secundarios a situaciones estresantes y somatomorfos' ='Trastornos neuróticos, secundarios a situaciones estresantes y somatomorfos(F40-49)',
                                           'Trs. del comportamiento y de las emociones de comienzo habitual en la infancia y adolescencia' ='Trs. del comportamiento y de las emociones de comienzo habitual en la infancia y adolescencia(F90-98)'))

CONS_C1_df_dup_JUL_2020<-
  CONS_C1_df_dup_JUL_2020 %>% dplyr::mutate(x2_dg_trs_psiq_cie_10_or= recode(as.character(x2_dg_trs_psiq_cie_10_or),
                                                                          'En estudio' ='En estudio(NA)',
                                                                          'Esquizofrenia, trastorno esquizotípico y trastornos de ideas delirantes' ='Esquizofrenia, trastorno esquizotípico y trastornos de ideas delirantes(F20-29)',
                                                                          'Retraso Mental' ='Retraso Mental(F70-79)',
                                                                          'Sin trastorno' ='Sin trastorno(NA)',
                                                                          'Trastornos de la conducta alimentaria ' ='Trastornos de la conducta alimentaria(F50)',
                                                                          'Trastornos de la personalidad y del comportamiento del adulto' ='Trastornos de la personalidad y del comportamiento del adulto(F60-69)',
                                                                          'Trastornos de los hábitos y del control de los impulsos' ='Trastornos de los hábitos y del control de los impulsos(F63)',
                                                                          'Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos' ='Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos(F50-59)',
                                                                          'Trastornos del Desarrollo Psicológico' ='Trastornos del Desarrollo Psicológico(F80-89)',
                                                                          'Trastornos del humor (afectivos).' ='Trastornos del humor (afectivos) (F30-39)',
                                                                          'Trastornos mentales orgánicos, incluidos los sintomáticos' ='Trastornos mentales orgánicos, incluidos los sintomáticos(F00-09)',
                                                                          'Trastornos neuróticos, secundarios a situaciones estresantes y somatomorfos' ='Trastornos neuróticos, secundarios a situaciones estresantes y somatomorfos(F40-49)',
                                                                          'Trs. del comportamiento y de las emociones de comienzo habitual en la infancia y adolescencia' ='Trs. del comportamiento y de las emociones de comienzo habitual en la infancia y adolescencia(F90-98)'))


CONS_C1_df_dup_JUL_2020<-
  CONS_C1_df_dup_JUL_2020 %>% dplyr::mutate(x3_dg_trs_psiq_cie_10_or= recode(as.character(x3_dg_trs_psiq_cie_10_or),
                                                                             'En estudio' ='En estudio(NA)',
                                                                             'Esquizofrenia, trastorno esquizotípico y trastornos de ideas delirantes' ='Esquizofrenia, trastorno esquizotípico y trastornos de ideas delirantes(F20-29)',
                                                                             'Retraso Mental' ='Retraso Mental(F70-79)',
                                                                             'Sin trastorno' ='Sin trastorno(NA)',
                                                                             'Trastornos de la conducta alimentaria ' ='Trastornos de la conducta alimentaria(F50)',
                                                                             'Trastornos de la personalidad y del comportamiento del adulto' ='Trastornos de la personalidad y del comportamiento del adulto(F60-69)',
                                                                             'Trastornos de los hábitos y del control de los impulsos' ='Trastornos de los hábitos y del control de los impulsos(F63)',
                                                                             'Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos' ='Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos(F50-59)',
                                                                             'Trastornos del Desarrollo Psicológico' ='Trastornos del Desarrollo Psicológico(F80-89)',
                                                                             'Trastornos del humor (afectivos).' ='Trastornos del humor (afectivos) (F30-39)',
                                                                             'Trastornos mentales orgánicos, incluidos los sintomáticos' ='Trastornos mentales orgánicos, incluidos los sintomáticos(F00-09)',
                                                                             'Trastornos neuróticos, secundarios a situaciones estresantes y somatomorfos' ='Trastornos neuróticos, secundarios a situaciones estresantes y somatomorfos(F40-49)',
                                                                             'Trs. del comportamiento y de las emociones de comienzo habitual en la infancia y adolescencia' ='Trs. del comportamiento y de las emociones de comienzo habitual en la infancia y adolescencia(F90-98)'))

CONS_C1_df_dup_JUL_2020<-
  CONS_C1_df_dup_JUL_2020 %>% dplyr::mutate(dg_trs_psiq_sub_cie_10_or= recode(as.character(dg_trs_psiq_sub_cie_10_or),
    'Abuso de sustancias que no producen dependencia' ='Abuso de sustancias que no producen dependencia(F55X)',
    'Delirium no inducido por alcohol u otras sustancias psicotropas' ='Delirium no inducido por alcohol u otras sustancias psicotropas(F059)',
    'Demencia en enfermedades clasificadas en otro lugar' ='Demencia en enfermedades clasificadas en otro lugar(F02)',
    'Demencia sin especificación' ='Demencia sin especificación(F03)',
    'Demencia vascular' ='Demencia vascular(F01)',
    'Episodios depresivos' ='Episodios depresivos(F32)',
    'Factores psicológicos y del comportamiento en trastornos o enfermedades clasificados en otro lugar' ='Factores psicológicos y del comportamiento en trastornos o enfermedades clasificados en otro lugar(F54)',
    'Otros trastornos de ansiedad' ='Otros trastornos de ansiedad(F41)',
    'Otros trastornos de la personalidad y del comportamiento del adulto' ='Otros trastornos de la personalidad y del comportamiento del adulto(F68)',
    'Otros trastornos de las emociones y del comportamiento de comienzo habitual en la infancia y adolescencia' ='Otros trastornos de las emociones y del comportamiento de comienzo habitual en la infancia y adolescencia(F98)',
    'Otros trastornos del desarrollo psicológico' ='Otros trastornos del desarrollo psicológico(F88)',
    'Otros trastornos del humor (afectivos)' ='Otros trastornos del humor (afectivos)(F38)',
    'Otros trastornos mentales debidos a lesión o disfunción cerebral o a enfermedad somática' ='Otros trastornos mentales debidos a lesión o disfunción cerebral o a enfermedad somática(F06)',
    'Otros trastornos neuróticos' ='Otros trastornos neuróticos(F48)',
    'Otros trastornos psicóticos no orgánicos' ='Otros trastornos psicóticos no orgánicos(F28)',
    'Psicosis no orgánica sin especificación' ='Psicosis no orgánica sin especificación(F29)',
    'Reacciones a estrés grave y trastornos de adaptación' ='Reacciones a estrés grave y trastornos de adaptación(F43)',
    'Síndrome amnésico orgánico no inducido por alcohol u otras sustancias psicotropas' ='Síndrome amnésico orgánico no inducido por alcohol u otras sustancias psicotropas(F04)',
    'Transformación persistente de la personalidad no atribuible a lesión o enfermedad cerebral' ='Transformación persistente de la personalidad no atribuible a lesión o enfermedad cerebral(F62)',
    'Trastorno bipolar' ='Trastorno bipolar(F31)',
    'Trastorno de ideas delirantes inducidas' ='Trastorno de ideas delirantes inducidas(F24)',
    'Trastorno de la personalidad y del comportamiento del adulto sin especificación' ='Trastorno de la personalidad y del comportamiento del adulto sin especificación(F69)',
    'Trastorno del desarrollo psicológico sin especificación' ='Trastorno del desarrollo psicológico sin especificación(F89)',
    'Trastorno depresivo recurrente' ='Trastorno depresivo recurrente(F33)',
    'Trastorno específico del desarrollo mixto' ='Trastorno específico del desarrollo mixto(F83)',
    'Trastorno esquizotípico.' ='Trastorno esquizotípico.(F21)',
    'Trastorno generalizado del desarrollo sin especificación' ='Trastorno generalizado del desarrollo sin especificación(F849)',
    'Trastorno mental orgánico o sintomático sin especificación' ='Trastorno mental orgánico o sintomático sin especificación(F09)',
    'Trastorno mental sin especificación' ='Trastorno mental sin especificación(F99)',
    'Trastorno obsesivo-compulsivo' ='Trastorno obsesivo-compulsivo(F42)',
    'Trastornos de ideas delirantes persistentes.' ='Trastornos de ideas delirantes persistentes.(F22)',
    'Trastornos de la identidad sexual' ='Trastornos de la identidad sexual(F64)',
    'Trastornos de la inclinación sexual' ='Trastornos de la inclinación sexual(F65)',
    'Trastornos de la personalidad y del comportamiento debidos a enfermedad, lesión o disfunción cerebral' ='Trastornos de la personalidad y del comportamiento debidos a enfermedad, lesión o disfunción cerebral(F07)',
    'Trastornos de las emociones de comienzo habitual en la infancia' ='Trastornos de las emociones de comienzo habitual en la infancia(F93)',
    'Trastornos de los hábitos y del control de los impulsos' ='Trastornos de los hábitos y del control de los impulsos(F63)',
    'Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos sin especificación' ='Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos sin especificación(F59)',
    'Trastornos del comportamiento social de comienzo habitual en la infancia y adolescencia' ='Trastornos del comportamiento social de comienzo habitual en la infancia y adolescencia(F94)',
    'Trastornos del humor (afectivos) persistentes' ='Trastornos del humor (afectivos) persistentes(F34)',
    'Trastornos disociales' ='Trastornos disociales(F91)',
    'Trastornos disociales y de las emociones mixtos' ='Trastornos disociales y de las emociones mixtos(F92)',
    'Trastornos disociativos (de conversión)' ='Trastornos disociativos (de conversión)(F44)',
    'Trastornos específicos de la personalidad' ='Trastornos específicos de la personalidad(F60)',
    'Trastornos específicos del desarrollo del aprendizaje escolar' ='Trastornos específicos del desarrollo del aprendizaje escolar(F81)',
    'Trastornos esquizoafectivos' ='Trastornos esquizoafectivos(F25)',
    'Trastornos generalizados del desarrollo' ='Trastornos generalizados del desarrollo(F84)',
    'Trastornos Hipercineticos' ='Trastornos Hipercineticos(F90)',
    'Trastornos mentales y del comportamiento en el puerperio no clasificados en otro lugar' ='Trastornos mentales y del comportamiento en el puerperio no clasificados en otro lugar(F53)',
    'Trastornos mixtos y otros trastornos de la personalidad' ='Trastornos mixtos y otros trastornos de la personalidad(F61)',
    'Trastornos no orgánicos del sueño' ='Trastornos no orgánicos del sueño(F51)',
    'Trastornos psicológicos y del comportamiento del desarrollo y orientación sexuales' ='Trastornos psicológicos y del comportamiento del desarrollo y orientación sexuales(F66)',
    'Trastornos psicóticos agudos y transitorios' ='Trastornos psicóticos agudos y transitorios(F23)',
    'Trastornos somatomorfos' ='Trastornos somatomorfos(F45)'))
CONS_C1_df_dup_JUL_2020<-
    CONS_C1_df_dup_JUL_2020 %>% dplyr::mutate(x2_dg_trs_psiq_sub_cie_10_or= recode(as.character(x2_dg_trs_psiq_sub_cie_10_or),
                                                                                'Abuso de sustancias que no producen dependencia' ='Abuso de sustancias que no producen dependencia(F55X)',
                                                                                'Delirium no inducido por alcohol u otras sustancias psicotropas' ='Delirium no inducido por alcohol u otras sustancias psicotropas(F059)',
                                                                                'Demencia en enfermedades clasificadas en otro lugar' ='Demencia en enfermedades clasificadas en otro lugar(F02)',
                                                                                'Demencia sin especificación' ='Demencia sin especificación(F03)',
                                                                                'Demencia vascular' ='Demencia vascular(F01)',
                                                                                'Episodios depresivos' ='Episodios depresivos(F32)',
                                                                                'Factores psicológicos y del comportamiento en trastornos o enfermedades clasificados en otro lugar' ='Factores psicológicos y del comportamiento en trastornos o enfermedades clasificados en otro lugar(F54)',
                                                                                'Otros trastornos de ansiedad' ='Otros trastornos de ansiedad(F41)',
                                                                                'Otros trastornos de la personalidad y del comportamiento del adulto' ='Otros trastornos de la personalidad y del comportamiento del adulto(F68)',
                                                                                'Otros trastornos de las emociones y del comportamiento de comienzo habitual en la infancia y adolescencia' ='Otros trastornos de las emociones y del comportamiento de comienzo habitual en la infancia y adolescencia(F98)',
                                                                                'Otros trastornos del desarrollo psicológico' ='Otros trastornos del desarrollo psicológico(F88)',
                                                                                'Otros trastornos del humor (afectivos)' ='Otros trastornos del humor (afectivos)(F38)',
                                                                                'Otros trastornos mentales debidos a lesión o disfunción cerebral o a enfermedad somática' ='Otros trastornos mentales debidos a lesión o disfunción cerebral o a enfermedad somática(F06)',
                                                                                'Otros trastornos neuróticos' ='Otros trastornos neuróticos(F48)',
                                                                                'Otros trastornos psicóticos no orgánicos' ='Otros trastornos psicóticos no orgánicos(F28)',
                                                                                'Psicosis no orgánica sin especificación' ='Psicosis no orgánica sin especificación(F29)',
                                                                                'Reacciones a estrés grave y trastornos de adaptación' ='Reacciones a estrés grave y trastornos de adaptación(F43)',
                                                                                'Síndrome amnésico orgánico no inducido por alcohol u otras sustancias psicotropas' ='Síndrome amnésico orgánico no inducido por alcohol u otras sustancias psicotropas(F04)',
                                                                                'Transformación persistente de la personalidad no atribuible a lesión o enfermedad cerebral' ='Transformación persistente de la personalidad no atribuible a lesión o enfermedad cerebral(F62)',
                                                                                'Trastorno bipolar' ='Trastorno bipolar(F31)',
                                                                                'Trastorno de ideas delirantes inducidas' ='Trastorno de ideas delirantes inducidas(F24)',
                                                                                'Trastorno de la personalidad y del comportamiento del adulto sin especificación' ='Trastorno de la personalidad y del comportamiento del adulto sin especificación(F69)',
                                                                                'Trastorno del desarrollo psicológico sin especificación' ='Trastorno del desarrollo psicológico sin especificación(F89)',
                                                                                'Trastorno depresivo recurrente' ='Trastorno depresivo recurrente(F33)',
                                                                                'Trastorno específico del desarrollo mixto' ='Trastorno específico del desarrollo mixto(F83)',
                                                                                'Trastorno esquizotípico.' ='Trastorno esquizotípico.(F21)',
                                                                                'Trastorno generalizado del desarrollo sin especificación' ='Trastorno generalizado del desarrollo sin especificación(F849)',
                                                                                'Trastorno mental orgánico o sintomático sin especificación' ='Trastorno mental orgánico o sintomático sin especificación(F09)',
                                                                                'Trastorno mental sin especificación' ='Trastorno mental sin especificación(F99)',
                                                                                'Trastorno obsesivo-compulsivo' ='Trastorno obsesivo-compulsivo(F42)',
                                                                                'Trastornos de ideas delirantes persistentes.' ='Trastornos de ideas delirantes persistentes.(F22)',
                                                                                'Trastornos de la identidad sexual' ='Trastornos de la identidad sexual(F64)',
                                                                                'Trastornos de la inclinación sexual' ='Trastornos de la inclinación sexual(F65)',
                                                                                'Trastornos de la personalidad y del comportamiento debidos a enfermedad, lesión o disfunción cerebral' ='Trastornos de la personalidad y del comportamiento debidos a enfermedad, lesión o disfunción cerebral(F07)',
                                                                                'Trastornos de las emociones de comienzo habitual en la infancia' ='Trastornos de las emociones de comienzo habitual en la infancia(F93)',
                                                                                'Trastornos de los hábitos y del control de los impulsos' ='Trastornos de los hábitos y del control de los impulsos(F63)',
                                                                                'Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos sin especificación' ='Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos sin especificación(F59)',
                                                                                'Trastornos del comportamiento social de comienzo habitual en la infancia y adolescencia' ='Trastornos del comportamiento social de comienzo habitual en la infancia y adolescencia(F94)',
                                                                                'Trastornos del humor (afectivos) persistentes' ='Trastornos del humor (afectivos) persistentes(F34)',
                                                                                'Trastornos disociales' ='Trastornos disociales(F91)',
                                                                                'Trastornos disociales y de las emociones mixtos' ='Trastornos disociales y de las emociones mixtos(F92)',
                                                                                'Trastornos disociativos (de conversión)' ='Trastornos disociativos (de conversión)(F44)',
                                                                                'Trastornos específicos de la personalidad' ='Trastornos específicos de la personalidad(F60)',
                                                                                'Trastornos específicos del desarrollo del aprendizaje escolar' ='Trastornos específicos del desarrollo del aprendizaje escolar(F81)',
                                                                                'Trastornos esquizoafectivos' ='Trastornos esquizoafectivos(F25)',
                                                                                'Trastornos generalizados del desarrollo' ='Trastornos generalizados del desarrollo(F84)',
                                                                                'Trastornos Hipercineticos' ='Trastornos Hipercineticos(F90)',
                                                                                'Trastornos mentales y del comportamiento en el puerperio no clasificados en otro lugar' ='Trastornos mentales y del comportamiento en el puerperio no clasificados en otro lugar(F53)',
                                                                                'Trastornos mixtos y otros trastornos de la personalidad' ='Trastornos mixtos y otros trastornos de la personalidad(F61)',
                                                                                'Trastornos no orgánicos del sueño' ='Trastornos no orgánicos del sueño(F51)',
                                                                                'Trastornos psicológicos y del comportamiento del desarrollo y orientación sexuales' ='Trastornos psicológicos y del comportamiento del desarrollo y orientación sexuales(F66)',
                                                                                'Trastornos psicóticos agudos y transitorios' ='Trastornos psicóticos agudos y transitorios(F23)',
                                                                                'Trastornos somatomorfos' ='Trastornos somatomorfos(F45)'))
    
CONS_C1_df_dup_JUL_2020<-
  CONS_C1_df_dup_JUL_2020 %>% dplyr::mutate(x3_dg_trs_psiq_sub_cie_10_or= recode(as.character(x3_dg_trs_psiq_sub_cie_10_or),
                                                                                   'Abuso de sustancias que no producen dependencia' ='Abuso de sustancias que no producen dependencia(F55X)',
                                                                                   'Delirium no inducido por alcohol u otras sustancias psicotropas' ='Delirium no inducido por alcohol u otras sustancias psicotropas(F059)',
                                                                                   'Demencia en enfermedades clasificadas en otro lugar' ='Demencia en enfermedades clasificadas en otro lugar(F02)',
                                                                                   'Demencia sin especificación' ='Demencia sin especificación(F03)',
                                                                                   'Demencia vascular' ='Demencia vascular(F01)',
                                                                                   'Episodios depresivos' ='Episodios depresivos(F32)',
                                                                                   'Factores psicológicos y del comportamiento en trastornos o enfermedades clasificados en otro lugar' ='Factores psicológicos y del comportamiento en trastornos o enfermedades clasificados en otro lugar(F54)',
                                                                                   'Otros trastornos de ansiedad' ='Otros trastornos de ansiedad(F41)',
                                                                                   'Otros trastornos de la personalidad y del comportamiento del adulto' ='Otros trastornos de la personalidad y del comportamiento del adulto(F68)',
                                                                                   'Otros trastornos de las emociones y del comportamiento de comienzo habitual en la infancia y adolescencia' ='Otros trastornos de las emociones y del comportamiento de comienzo habitual en la infancia y adolescencia(F98)',
                                                                                   'Otros trastornos del desarrollo psicológico' ='Otros trastornos del desarrollo psicológico(F88)',
                                                                                   'Otros trastornos del humor (afectivos)' ='Otros trastornos del humor (afectivos)(F38)',
                                                                                   'Otros trastornos mentales debidos a lesión o disfunción cerebral o a enfermedad somática' ='Otros trastornos mentales debidos a lesión o disfunción cerebral o a enfermedad somática(F06)',
                                                                                   'Otros trastornos neuróticos' ='Otros trastornos neuróticos(F48)',
                                                                                   'Otros trastornos psicóticos no orgánicos' ='Otros trastornos psicóticos no orgánicos(F28)',
                                                                                   'Psicosis no orgánica sin especificación' ='Psicosis no orgánica sin especificación(F29)',
                                                                                   'Reacciones a estrés grave y trastornos de adaptación' ='Reacciones a estrés grave y trastornos de adaptación(F43)',
                                                                                   'Síndrome amnésico orgánico no inducido por alcohol u otras sustancias psicotropas' ='Síndrome amnésico orgánico no inducido por alcohol u otras sustancias psicotropas(F04)',
                                                                                   'Transformación persistente de la personalidad no atribuible a lesión o enfermedad cerebral' ='Transformación persistente de la personalidad no atribuible a lesión o enfermedad cerebral(F62)',
                                                                                   'Trastorno bipolar' ='Trastorno bipolar(F31)',
                                                                                   'Trastorno de ideas delirantes inducidas' ='Trastorno de ideas delirantes inducidas(F24)',
                                                                                   'Trastorno de la personalidad y del comportamiento del adulto sin especificación' ='Trastorno de la personalidad y del comportamiento del adulto sin especificación(F69)',
                                                                                   'Trastorno del desarrollo psicológico sin especificación' ='Trastorno del desarrollo psicológico sin especificación(F89)',
                                                                                   'Trastorno depresivo recurrente' ='Trastorno depresivo recurrente(F33)',
                                                                                   'Trastorno específico del desarrollo mixto' ='Trastorno específico del desarrollo mixto(F83)',
                                                                                   'Trastorno esquizotípico.' ='Trastorno esquizotípico.(F21)',
                                                                                   'Trastorno generalizado del desarrollo sin especificación' ='Trastorno generalizado del desarrollo sin especificación(F849)',
                                                                                   'Trastorno mental orgánico o sintomático sin especificación' ='Trastorno mental orgánico o sintomático sin especificación(F09)',
                                                                                   'Trastorno mental sin especificación' ='Trastorno mental sin especificación(F99)',
                                                                                   'Trastorno obsesivo-compulsivo' ='Trastorno obsesivo-compulsivo(F42)',
                                                                                   'Trastornos de ideas delirantes persistentes.' ='Trastornos de ideas delirantes persistentes.(F22)',
                                                                                   'Trastornos de la identidad sexual' ='Trastornos de la identidad sexual(F64)',
                                                                                   'Trastornos de la inclinación sexual' ='Trastornos de la inclinación sexual(F65)',
                                                                                   'Trastornos de la personalidad y del comportamiento debidos a enfermedad, lesión o disfunción cerebral' ='Trastornos de la personalidad y del comportamiento debidos a enfermedad, lesión o disfunción cerebral(F07)',
                                                                                   'Trastornos de las emociones de comienzo habitual en la infancia' ='Trastornos de las emociones de comienzo habitual en la infancia(F93)',
                                                                                   'Trastornos de los hábitos y del control de los impulsos' ='Trastornos de los hábitos y del control de los impulsos(F63)',
                                                                                   'Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos sin especificación' ='Trastornos del comportamiento asociados a disfunciones fisiológicas y a factores somáticos sin especificación(F59)',
                                                                                   'Trastornos del comportamiento social de comienzo habitual en la infancia y adolescencia' ='Trastornos del comportamiento social de comienzo habitual en la infancia y adolescencia(F94)',
                                                                                   'Trastornos del humor (afectivos) persistentes' ='Trastornos del humor (afectivos) persistentes(F34)',
                                                                                   'Trastornos disociales' ='Trastornos disociales(F91)',
                                                                                   'Trastornos disociales y de las emociones mixtos' ='Trastornos disociales y de las emociones mixtos(F92)',
                                                                                   'Trastornos disociativos (de conversión)' ='Trastornos disociativos (de conversión)(F44)',
                                                                                   'Trastornos específicos de la personalidad' ='Trastornos específicos de la personalidad(F60)',
                                                                                   'Trastornos específicos del desarrollo del aprendizaje escolar' ='Trastornos específicos del desarrollo del aprendizaje escolar(F81)',
                                                                                   'Trastornos esquizoafectivos' ='Trastornos esquizoafectivos(F25)',
                                                                                   'Trastornos generalizados del desarrollo' ='Trastornos generalizados del desarrollo(F84)',
                                                                                   'Trastornos Hipercineticos' ='Trastornos Hipercineticos(F90)',
                                                                                   'Trastornos mentales y del comportamiento en el puerperio no clasificados en otro lugar' ='Trastornos mentales y del comportamiento en el puerperio no clasificados en otro lugar(F53)',
                                                                                   'Trastornos mixtos y otros trastornos de la personalidad' ='Trastornos mixtos y otros trastornos de la personalidad(F61)',
                                                                                   'Trastornos no orgánicos del sueño' ='Trastornos no orgánicos del sueño(F51)',
                                                                                   'Trastornos psicológicos y del comportamiento del desarrollo y orientación sexuales' ='Trastornos psicológicos y del comportamiento del desarrollo y orientación sexuales(F66)',
                                                                                   'Trastornos psicóticos agudos y transitorios' ='Trastornos psicóticos agudos y transitorios(F23)',
                                                                                   'Trastornos somatomorfos' ='Trastornos somatomorfos(F45)'))

#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_  
  
codebook::var_label(CONS_C1_df_dup_JUL_2020) <- list(
row= 'Numerador de los eventos presentes en la Base de Datos/Events in the Dataset',
table= 'Origen de los Datos (de los archivos por año)/Source of Data (of files per year)',
hash_key= 'Codificación del RUT/Masked Identifier (RUT)',
ano_bd= 'Año de la Base de Datos/Year of the Dataset (Source)',
id= 'Codigo Identificación de SENDA/SENDAs ID',
nombre_centro= 'Nombre del Centro de Tratamiento/Treatment Center',
tipo_centro= 'Tipo de Centro/Type of Center',
region_del_centro= '(original, Recodificado en nombre_region)/',
servicio_de_salud= 'Servicio de Salud/Health Service',
tipo_de_programa= '(original, Recodificado en tipo_de_programa_2)/',
tipo_de_plan= '(original, Recodificado en tipo_de_plan_2)/',
senda= 'SENDA/SENDA',
dias_trat= 'Días de Tratamiento/Days of Treatment',
nmesesentratamiento= 'Número de Meses en Tratamiento/Number of Months in Treatment',
dias_en_senda= 'Días en SENDA/Days in SENDA',
n_meses_en_senda= 'Número de Meses en SENDA/Number of Months in SENDA',
sexo= '(original, Recodificado en sexo_2)/',
edad= 'Edad (número entero)/Age (In years, Discrete Number)',
nombre_usuario= 'Nombre del Usuario (OCULTO y no accesible)/Name of the User (Not Accessible)',
comuna_residencia= '(original, Recodificado en comuna_residencia_cod)/',
origen_de_ingreso= '(original, Recodificado en origen_ingreso)/',
pais_nacimiento= 'País de Nacimiento/Country of Birth',
nacionalidad= 'Nacionalidad/Nationality',
etnia= '(original, recodificado en etnia_cor)/',
estado_conyugal= '(original, Recodificado en estado_conyugal_2)/',
numero_de_hijos= 'Número de Hijos/Number of Children',
num_hijos_ing_trat_res= 'Número de Hijos para Ingreso a Tratamiento Residencial/Number of Children to Residential Treatment',
parentesco_con_el_jefe_de_hogar= '(Sólo presenta valores perdidos)/',
num_trat_ant= 'Número de Tratamientos Anteriores/Number of Previous Treatments',
fecha_ultimo_tratamiento= 'Fecha del Último Tratamiento/Date of the Last Treatment',
sustancia_de_inicio= '(original, Recodificado en sus_ini)/',
edad_inicio_consumo= '(original, Recodificado en edad_ini_cons)/', 
x_se_trata_mujer_emb= 'Mujer Embarazada al Ingreso/Pregnant at Admission',
escolaridad_ultimo_ano_cursado= '(original, Recodificado en escolaridad)/', 
condicion_ocupacional= '(original, Recodificado en estatus_ocupacional)/', 
categoria_ocupacional= '(original, Recodificado en cat_ocupacional)/',
rubro_trabaja= '(original, Recodificado en rubro_trabaja_mod)/',
con_quien_vive= 'Persona con la que vive el Usuario/People that Share Household with the User',
tipo_de_vivienda= '(original, Recodificado en tipo_de_vivienda_mod)/',
tenencia_de_la_vivienda= '(original, Recodificado en tenencia_de_la_vivienda_mod)/',
sustancia_principal= '(original, Recodificado en sus_principal)/',
`otras_sustancias_nº1`= '(original, Recodificado en otras_sus1)/',
`otras_sustancias_nº2`= '(original, Recodificado en otras_sus2)/',
`otras_sustancias_nº3`= '(original, Recodificado en otras_sus3)/',
freq_cons_sus_prin_original= '(original, Recodificado en freq_cons_sus_prin)/',
edad_inicio_sustancia_principal= '(original, Recodificado en edad_ini_sus_prin)/',
via_adm_sus_prin_original= '(original, Recodificado en via_adm_sus_prin)/',
dg_trs_cons_sus_or= 'Diagnósico de Trastorno por Consumo de Sustancias/Diagnosed of Substance Use Disorder',
dg_trs_psiq_dsm_iv_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios DSM IV/Diagnosis of Psychiatric Disorders, DSM-IV criteria',
dg_trs_psiq_sub_dsm_iv_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios DSM IV (Subclasificacion)/Diagnosis of Psychiatric Disorders, DSM-IV criteria (sub-classification)',
x2_dg_trs_psiq_dsm_iv_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios DSM IV (2)/Diagnosis of Psychiatric Disorders, DSM-IV criteria (2)',
x2_dg_trs_psiq_sub_dsm_iv_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios DSM IV (Subclasificacion) (2)/Diagnosis of Psychiatric Disorders, DSM-IV criteria (sub-classification) (2)',
x3_dg_trs_psiq_dsm_iv_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios DSM IV (3)/Diagnosis of Psychiatric Disorders, DSM-IV criteria (3)',
x3_dg_trs_psiq_sub_dsm_iv_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios DSM IV (Subclasificacion) (3)/Diagnosis of Psychiatric Disorders, DSM-IV criteria (sub-classification) (3)',
dg_trs_psiq_cie_10_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios CIE-10/Diagnosis of Psychiatric Disorders, CIE-10 criteria',
dg_trs_psiq_sub_cie_10_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios CIE-10 (Subclasificacion)/Diagnosis of Psychiatric Disorders, CIE-10 criteria (subclassification)',
x2_dg_trs_psiq_cie_10_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios CIE-10 (2)/Diagnosis of Psychiatric Disorders, CIE-10 criteria (2)',
x2_dg_trs_psiq_sub_cie_10_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios CIE-10 (Subclasificacion) (2)/Diagnosis of Psychiatric Disorders, CIE-10 criteria (subclassification) (2)',
x3_dg_trs_psiq_cie_10_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios CIE-10 (3)/Diagnosis of Psychiatric Disorders, CIE-10 criteria (3)',
x3_dg_trs_psiq_sub_cie_10_or= 'Diagnóstico de Trastorno Psiquiátrico, Criterios CIE-10 (Subclasificacion) (3)/Diagnosis of Psychiatric Disorders, CIE-10 criteria (subclassification) (3)',
diagnostico_trs_fisico= 'Diagnóstico de Trastorno Físico/Diagnosis of Physical Disorder',
otros_probl_at_sm_or= 'Otros Problemas de Atención Vinculados a Salud Mental/Other problems linked to Mental Health',
compromiso_biopsicosocial= 'Compromiso Biopsicosocial/Biopsychosocial Involvement',
dg_global_nec_int_soc_or= 'Diagnóstico Global de Necesidades de Integración Social (Al Ingreso)/Global Diagnosis of Social Integration (At Admission)',
dg_nec_int_soc_cap_hum_or= 'Diagnóstico de Necesidades de Integración Social en Capital Humano (Al Ingreso)/Global Diagnosis of Social Integration in Human Capital (At Admission)',
dg_nec_int_soc_cap_fis_or= 'Diagnóstico de Necesidades de Integración Social en Capital Físico (Al Ingreso)/Global Diagnosis of Social Integration in Physical Capital (At Admission)',
dg_nec_int_soc_cap_soc_or= 'Diagnóstico de Necesidades de Integración Social en Capital Social (Al Ingreso)/Global Diagnosis of Social Integration in Social Capital (At Admission)',
fech_ing= 'Fecha de Ingreso a Tratamiento/Date of Admission to Treatment',
fecha_ingreso_a_convenio_senda= 'Fecha de Ingreso a Convenio SENDA (aún no formateada como fecha)/Date of Admission to SENDA Agreement',
usuario_tribunal_trat_droga= 'Usuario de modalidad Tribunales de Tratamiento de Drogas/User of Drug Treatment Courts Modality',
consentimiento_informado= 'Consentimiento Informado/Informed Consent',
fech_egres= 'Fecha de Egreso de Tratamiento/Date of Discharge from Treatment',
motivodeegreso= 'Motivo de Egreso/Cause of Discharge',
tipo_centro_derivacion= 'Tipo de Centro al que el Usuario es Derivado/Type of Center of Derivation',
evaluacindelprocesoteraputico= 'Evaluación del Proceso Terapéutico/Evaluation of the Therapeutic Process',
eva_consumo= 'Evaluación al Egreso Respecto al Patrón de consumo/Evaluation at Discharge regarding to Consumption Pattern',
eva_fam= 'Evaluación al Egreso Respecto a Situación Familiar/Evaluation at Discharge regarding to Family Situation',
eva_relinterp= 'Evaluación al Egreso Respecto a Relaciones Interpersonales/Evaluation at Discharge regarding to Interpersonal Relations',
eva_ocupacion= 'Evaluación al Egreso Respecto a Situación Ocupacional/Evaluation at Discharge regarding to Occupational Status',
eva_sm= 'Evaluación al Egreso Respecto a Salud Mental/Evaluation at Discharge regarding to Mental Health',
eva_fisica= 'Evaluación al Egreso Respecto a Salud Física/Evaluation at Discharge regarding to Physical Health',
eva_transgnorma= 'Evaluación al Egreso Respecto a Trasgresión a la Norma Social/Evaluation at Discharge regarding to Transgression to the Norm',
dg_trs_psiq_cie_10_egres_or= '(Sólo presenta valores perdidos)/',
dg_global_nec_int_soc_or_1= 'Diagnóstico Global de Necesidades de Integración Social (Al Egreso)/Global Diagnosis of Social Integration (At Discharge)',
dg_nec_int_soc_cap_hum_or_1= 'Diagnóstico de Necesidades de Integración Social en Capital Humano (Al Egreso)/Global Diagnosis of Social Integration in Human Capital (At Discharge)',
dg_nec_int_soc_cap_fis_or_1= 'Diagnóstico de Necesidades de Integración Social en Capital Físico (Al Egreso)/Global Diagnosis of Social Integration in Physical Capital (At Discharge)',
dg_nec_int_soc_cap_soc_or_1= 'Diagnóstico de Necesidades de Integración Social en Capital Social (Al Egreso)/Global Diagnosis of Social Integration in Social Capital (At Discharge)',
tiene_menores_de_edad_a_cargo= 'Menores de Edad A Cargo/Minor Dependants',
mot_egres_alt_adm_or= 'Motivo de Egreso Alta Administrativa/Cause of Administrative Discharge',
consorcio=  'Sociedades de Tratamiento Servicios de Salud- Fundaciones- entre otras entidades encargadas de los centros/Consortium',
id_centro= 'ID de Centro/Center ID',
ha_estado_embarazada_egreso= '¿Ha estado embarazada? (al Egreso)/Have you been Pregnant (at Discharge)',
identidad_de_genero= 'Identidad de Género/Gender Identity',
discapacidad= 'Presenta Discapacidad/Disability',
hash_rut_completo= 'HASH alternativo, en el escenario en que se asuma que el individuo al que se le codificó el RUT presente mayor edad/Alternative HASH-Key',
opcion_discapacidad= 'Origen de Discapacidad/Cause of Disability',
sexo_2= 'Sexo Usuario/Sex of User',
embarazo= 'Embarazo al Ingreso /Pregnant at Admission',
tipo_de_plan_2= 'Tipo de Plan/Type of Plan',
tipo_de_programa_2= 'Tipo de Programa de Tratamiento/Type of Program',
fech_egres_sin_fmt= 'Fecha de Egreso de Tratamiento (Sin Formato de Fecha)/Date of Discharge',
id_mod= 'ID de SENDA para Presentación en Página Web (enmascara caracteres 5 y 6)/SENDAs ID (mask characters 5 & 6)',
ano_nac= 'Año de Nacimiento (numérico)/Year of Birth (numeric)',
fech_ing_ano= 'Año de Ingreso (numérico)/Year of Admission (numeric)',
fech_ing_mes= 'Mes de Ingreso (numérico)/Month of Admission (numeric)',
fech_ing_dia= 'Día de Ingreso (numérico)/Day of Admission (numeric)',
concat= 'ID de SENDA y HASH Concatenado (permite discriminar más de un HASH en un mismo ID)/Combination of SENDAs ID & HASH',
obs= 'Observaciones al Proceso de Limpieza y Estandarización de Casos/Observations to the Process of Data Tidying & Standardization',
dias_trat_inv= 'Días de Tratamiento Invertidos (fecha más reciente, menor valor numérico)/Treatment Days (Reversed)',
fech_nac= 'Fecha de Nacimiento/Date of Birth',
edad_al_ing= 'Edad a la Fecha de Ingreso a Tratamiento (numérico continuo)/Age at Admission to Treatment',
edad_ini_cons= 'Edad de Inicio de Consumo/Age of Onset of Drug Use',
edad_ini_sus_prin=  'Edad de Inicio de Consumo Sustancia Principal/Age of Onset of Drug Use of Primary Substance',
dias_trat_alta_temprana= 'Días de tratamiento (<90)/Less than 90 days in treatment',
motivodeegreso_mod= 'Motivo de Egreso (con abandono temprano y tardío)/Cause of Discharge (with late and early withdrawal)',
sus_principal= 'Sustancia Principal de Consumo/Primary or Main Substance of Consumption at Admission',
otras_sus1= 'Otras Sustancias (1)/Other Substances (1)',
otras_sus2= 'Otras Sustancias (2)/Other Substances (2)',
otras_sus3= 'Otras Sustancias (3)/Other Substances (3)',
sus_ini= 'Sustancia de Inicio/Starting Substance',
estado_conyugal_2= 'Estado Conyugal/Marital Status',
estatus_ocupacional= 'Condición Ocupacional/Occupational Status',
cat_ocupacional= 'Categoría Ocupacional/Occupational Category',
edad_grupos= 'Edad agrupada/Age in groups',
origen_ingreso= "(modificado en origen_ingreso_mod)/",
escolaridad= 'Escolaridad: Nivel Eduacional/Educational Attainment',
via_adm_sus_prin= 'Vía de Administración de la Sustancia Principal/Route of Administration of the Primary or Main Substance',
freq_cons_sus_prin= 'Frecuencia de Consumo de la Sustancia Principal (30 días previos a la admisión)/Frequency of Consumption of the Primary or Main Substance (30 days previous to admission)',
dias_trat_knn_imp= 'Días de Tratamiento (Imputados KNN)/Days of Treatment (Imputed KNN)',
fech_egres_knn_imp= 'Fecha de Egreso (Imputados KNN)/Date of Discharge (Imputed KNN)',
dias_trat_alta_temprana_knn_imp= 'Días de Tratamiento con Alta Temprana (<90) (Imputados KNN)/Days of Treatment w Early Withdrawal (Imputed KNN)',
fech_egres_imp= 'Fecha de Egreso (Imputados KNN & Lógico)/Date of Discharge (Imputed KNN & Logic)',
motivodeegreso_imp= 'Motivo de Egreso(Imputados KNN & Lógico)/Cause of Discharge (Imputed KNN & Logic)',
motivodeegreso_mod_imp= 'Motivo de Egreso (con abandono temprano y tardío)(Imputados KNN & Lógico)/Cause of Discharge (with late and early withdrawal)(Imputed KNN & Logic)',
dias_trat_imp= 'Días de Tratamiento (Imputados KNN & Lógico)/Days of Treatment (Imputed KNN & Logic)', 
dias_trat_alta_temprana_imp= 'Días de Tratamiento con Alta Temprana (<90) (Imputados KNN & Lógico)/Days of Treatment w Early Withdrawal (Imputed KNN & Logic)',
via_adm_sus_prin_act= 'Vía de Administración de la Sustancia Principal (Se aplicaron criterios de limpieza)/Route of Administration of the Primary or Main Substance (Tidy)',
etnia_cor= 'Etnia/Ethnic Group',
nacionalidad_2= 'Segunda Nacionalidad/Second Nationality',
etnia_cor_2= 'Etnia (2)/Second Ethnic Group',
sus_ini_2= 'Segunda Sustancia de Inicio/Second Starting Substance',
sus_ini_3= 'Tercera Sustancia de Inicio/Third Starting Substance',
concat_hash_sus_prin= 'Combination of User & Primary Substance',
macrozona= "Macrozona/Macrozones",
nombre_region= " Región del Centro/Chilean Region of the Center",
comuna_residencia_cod= "Comuna de Residencia/Municipality or District of Residence",
sus_ini_mod= "Sustancia de Inicio (Sólo más frecuentes)/Starting Substance (Only more frequent)",
sus_principal_mod= 'Sustancia Principal de Consumo (Sólo más frecuentes)/Primary or Main Substance of Consumption at Admission (Only more frequent)',
origen_ingreso_mod= 'Origen de Ingreso/Motive of Admission to Treatment',
tipo_de_vivienda_mod= 'Tipo de Vivienda/Type of Housing', 
tenencia_de_la_vivienda_mod= 'Tenencia de la Vivienda/Tenure status of Households',
rubro_trabaja_mod= 'Rubro de Trabajo/Area of Work',
edad_al_ing_grupos= 'Edad a la Fecha de Ingreso a Tratamiento en Grupos/Age at Admission to Treatment In Groups',
menor_60_dias_diff= 'Menor a 60 días de diferencia con el registro posterior/Menor a 60 days of difference between the next entry',
menor_45_dias_diff= 'Menor a 45 días de diferencia con el registro posterior/Less than 45 days of difference between the next entry',
diff_bet_treat= 'Días de diferencia con el registro posterior/Days of difference between the next entry',
id_centro_sig_trat= "ID del Centro del registro posterior/Center ID of the Next Treatment",
tipo_plan_sig_trat= "Tipo de Plan del registro posterior/Type of Plan of the Next Entry",
tipo_programa_sig_trat= "Tipo de Programa del registro posterior/Type of Program of the Next Entry", 
senda_sig_trat= "SENDA del registro posterior/SENDA of the Next Entry",
motivoegreso_derivacion= "Motivo de Egreso= Derivación/Cause of Discharge= Derivación",
obs_cambios= "Cambios del tratamiento en comparación al registro posterior/Changes in treatment compared to the Next Entry",
obs_cambios_ninguno= "Sin cambios del tratamiento en comparación al registro posterior/No changes in treatment compared to the Next Entry",
obs_cambios_num= "Recuento de cambios del tratamiento en comparación al registro posterior/Count of changes in treatment compared to the Next Entry",
obs_cambios_fac= "Recuento de cambios del tratamiento en comparación al registro posterior(factor)/Count of changes in treatment compared to the Next Entry(factor)",
at_least_one_cont_entry= "Casos de Usuarios con más de una entrada después de otra/Cases of users with more than one entry after another one"
)

#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_

#####to_export_labels
table_labels<-
  tibble::rownames_to_column(data.frame(Hmisc::label(CONS_C1_df_dup_JUL_2020))) %>% data.frame() %>%
  dplyr::rename("code" = !!names(.[1]), "label" = !!names(.[2])) %>% data.frame() %>%
  dplyr::mutate(first= "cap label variable")%>%
  dplyr::mutate(final= paste0(first, " ",code,' "',label,'"'))%>%
  dplyr::select(-code,-label,-first)%>%
  rbind('cap save "G:/Mi unidad/Alvacast/SISTRAT 2019 (github)/CONS_C1_df_dup_JUL_2020.dta", replace')%>%
  rbind('cap drop id id_mod nombre_centro consentimiento_informado')%>%
  rbind('cap save "G:/Mi unidad/Alvacast/SISTRAT 2019 (github)/CONS_C1_df_dup_JUL_2020_exp.dta", replace')

table_labels<-
  data.frame(final='use "G:/Mi unidad/Alvacast/SISTRAT 2019 (github)/CONS_C1_df_dup_JUL_2020.dta", clear')%>%
  rbind(table_labels)%>%
  rename("*final"="final")
  #write.csv2(table_labels,"__labels_to_stata_C1_jun_2020.do",row.names =F)
  write.table(table_labels, file = "G:/Mi unidad/Alvacast/SISTRAT 2019 (github)/SUD_CL/_label_var_to_stata.do", sep = "",
            row.names = FALSE, quote = FALSE,fileEncoding="UTF-8")

 # dplyr::filter(label!="") %>%
#  bind_rows(data.frame("code"=c("fech_egres_imp", 
##                                "dias_trat_imp",
#                                "dias_trat_alta_temprana_imp",
#                                "motivodeegreso_mod_imp"), "label"=c("Date of Discharge (Imputed)", 
##                                                                     "Days of Treatment (Imputed)",
#                                                                     "Days of Treatment for Early Withdrawal (Imputed)",
#                                                                     "Cause of Discharge w/ Early or Late Withdrawal (Imputed)"))) %>% 

CONS_C1_df_dup_JUL_2020 %>%
  dplyr::arrange(hash_key, desc(fech_ing)) %>% 
  rio::export(file = "G:/Mi unidad/Alvacast/SISTRAT 2019 (github)/CONS_C1_df_dup_JUL_2020.dta")

save.image("G:/Mi unidad/Alvacast/SISTRAT 2019 (github)/7.RData")

#Agregar nuevas variables al codebook
#hacer codebook
#Agregar procesos a strobe
#Poner olr y arriba pondría los otros modelos.


cap do _label_var_to_stata.do



sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

Matrix products: default

locale:
[1] LC_COLLATE=Spanish_Chile.1252  LC_CTYPE=Spanish_Chile.1252   
[3] LC_MONETARY=Spanish_Chile.1252 LC_NUMERIC=C                  
[5] LC_TIME=Spanish_Chile.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] forcats_0.5.0           purrr_0.3.4             readr_1.3.1            
 [4] tibble_3.0.1            tidyverse_1.3.0         radiant.update_1.4.1   
 [7] treemapify_2.5.3        ggiraph_0.7.0           chilemapas_0.2         
[10] sf_0.9-3                finalfit_1.0.1          lsmeans_2.30-0         
[13] emmeans_1.4.7           choroplethrAdmin1_1.1.1 choroplethrMaps_1.0.1  
[16] choroplethr_3.6.3       acs_2.1.4               XML_3.99-0.3           
[19] RColorBrewer_1.1-2      panelr_0.7.3            lme4_1.1-23            
[22] Matrix_1.2-18           dplyr_1.0.0             data.table_1.12.8      
[25] codebook_0.9.2          Statamarkdown_0.4.5     devtools_2.3.0         
[28] usethis_1.6.1           sqldf_0.4-11            RSQLite_2.2.0          
[31] gsubfn_0.7              proto_1.0.0             broom_0.7.0            
[34] zoo_1.8-8               altair_4.0.1            rbokeh_0.5.1           
[37] janitor_2.0.1           plotly_4.9.2.1          kableExtra_1.1.0       
[40] Hmisc_4.4-0             Formula_1.2-3           survival_3.1-12        
[43] lattice_0.20-41         ggplot2_3.3.1           stringr_1.4.0          
[46] stringi_1.4.6           tidyr_1.1.0             knitr_1.29             
[49] matrixStats_0.56.0      boot_1.3-25            

loaded via a namespace (and not attached):
  [1] estimability_1.3        rappdirs_0.3.1          coda_0.19-3            
  [4] acepack_1.4.1           bit64_0.9-7             multcomp_1.4-13        
  [7] rpart_4.1-15            generics_0.0.2          callr_3.4.3            
 [10] TH.data_1.0-10          mice_3.9.0              ggfittext_0.9.0        
 [13] DiagrammeR_1.0.6.1.9000 chron_2.3-55            bit_1.1-15.2           
 [16] webshot_0.5.2           xml2_1.3.2              lubridate_1.7.9        
 [19] assertthat_0.2.1        xfun_0.16               hms_0.5.3              
 [22] evaluate_0.14           fansi_0.4.1             dbplyr_1.4.4           
 [25] readxl_1.3.1            DBI_1.1.0               htmlwidgets_1.5.1      
 [28] jsonvalidate_1.1.0      ellipsis_0.3.1          crosstalk_1.1.0.1      
 [31] backports_1.1.8         V8_3.1.0                insight_0.8.4          
 [34] vctrs_0.3.1             remotes_2.1.1           sjlabelled_1.1.5       
 [37] withr_2.2.0             pryr_0.1.4              tigris_0.9.4           
 [40] checkmate_2.0.0         rgdal_1.5-8             ggmap_3.0.0            
 [43] prettyunits_1.1.1       cluster_2.1.0           lazyeval_0.2.2         
 [46] crayon_1.3.4            crul_0.9.0              pkgconfig_2.0.3        
 [49] labeling_0.3            units_0.6-6             nlme_3.1-148           
 [52] pkgload_1.1.0           nnet_7.3-14             rlang_0.4.6            
 [55] RJSONIO_1.3-1.4         lifecycle_0.2.0         sandwich_2.5-1         
 [58] httpcode_0.3.0          modelr_0.1.8            cellranger_1.1.0       
 [61] tcltk_4.0.2             rprojroot_1.3-2         reprex_0.3.0           
 [64] base64enc_0.1-3         processx_3.4.2          png_0.1-7              
 [67] viridisLite_0.3.0       rjson_0.2.20            parameters_0.7.0       
 [70] bitops_1.0-6            KernSmooth_2.23-17      visNetwork_2.0.9       
 [73] pander_0.6.3            blob_1.2.1              classInt_0.4-3         
 [76] maptools_1.0-1          jpeg_0.1-8.1            ggeffects_0.14.3       
 [79] scales_1.1.1            memoise_1.1.0           magrittr_1.5           
 [82] plyr_1.8.6              hexbin_1.28.1           compiler_4.0.2         
 [85] snakecase_0.11.0        cli_2.0.2               ps_1.3.3               
 [88] htmlTable_1.13.3        MASS_7.3-51.6           tidyselect_1.1.0       
 [91] highr_0.8               jtools_2.0.5            yaml_2.2.1             
 [94] latticeExtra_0.6-29     grid_4.0.2              tools_4.0.2            
 [97] rmapshaper_0.4.4        RgoogleMaps_1.4.5.3     rstudioapi_0.11        
[100] uuid_0.1-4              foreign_0.8-80          gridExtra_2.3          
[103] gistr_0.5.0             sjPlot_2.8.4            digest_0.6.25          
[106] geojsonlint_0.4.0       Rcpp_1.0.4.6            performance_0.4.6      
[109] httr_1.4.2              gdtools_0.2.2           WDI_2.6.0              
[112] effectsize_0.3.1        sjstats_0.18.0          colorspace_1.4-1       
[115] rvest_0.3.5             fs_1.4.1                reticulate_1.16        
[118] splines_4.0.2           statmod_1.4.34          sp_1.4-2               
[121] vegawidget_0.3.1        sessioninfo_1.1.1       systemfonts_0.2.3      
[124] xtable_1.8-4            jsonlite_1.6.1          nloptr_1.2.2.1         
[127] testthat_2.3.2          R6_2.4.1                pillar_1.4.6           
[130] htmltools_0.4.0         glue_1.4.1              minqa_1.2.4            
[133] class_7.3-17            codetools_0.2-16        maps_3.3.0             
[136] pkgbuild_1.1.0          mvtnorm_1.1-1           curl_4.3               
[139] rmarkdown_2.3           repr_1.1.0              desc_1.2.0             
[142] munsell_0.5.0           e1071_1.7-3             labelled_2.5.0         
[145] sjmisc_2.8.5            haven_2.3.1             gtable_0.3.0           
[148] bayestestR_0.6.0